private void RenderThreadStart(object param)
        {
            // TODO: OP! Initialize render log file

            ProfilerShort.Autocommit = false;

            var startParams = (StartParams)param;

            m_renderWindow = startParams.InitHandler();
            var control = System.Windows.Forms.Control.FromHandle(m_renderWindow.Handle);

            m_settings = MyRenderProxy.CreateDevice(this, m_renderWindow.Handle, startParams.SettingsToTry);
            MyRenderProxy.SendCreatedDeviceSettings(m_settings);
            m_currentQuality = startParams.RenderQuality;
            m_form           = control;

            LoadContent();
            UpdateSize();

            //RenderLoop.UseCustomDoEvents = true;
            RenderLoop.Run(m_form, RenderCallback);

            UnloadContent();

            MyRenderProxy.DisposeDevice();
        }
        public static MyRenderThread StartSync(MyGameTimer timer, IMyRenderWindow renderWindow, MyRenderDeviceSettings?settingsToTry, MyRenderQualityEnum renderQuality)
        {
            var result = new MyRenderThread(timer, false);

            result.m_renderWindow = renderWindow;
            result.m_settings     = MyRenderProxy.CreateDevice(result, renderWindow.Handle, settingsToTry);
            MyRenderProxy.SendCreatedDeviceSettings(result.m_settings);

            result.m_currentQuality = renderQuality;
            result.m_form           = Control.FromHandle(renderWindow.Handle);

            result.LoadContent();
            result.UpdateSize();
            return(result);
        }
示例#3
0
        private void RenderThreadStart(object param)
        {
            // TODO: OP! Initialize render log file

            ProfilerShort.Autocommit = false;

            var startParams = (StartParams)param;

            m_renderWindow = startParams.InitHandler();
#if !XB1
            var control = System.Windows.Forms.Control.FromHandle(m_renderWindow.Handle);
#endif

            m_settings = MyRenderProxy.CreateDevice(this, m_renderWindow.Handle, startParams.SettingsToTry);
            if (m_settings.AdapterOrdinal == -1)
            {
                return;
            }
            MyRenderProxy.SendCreatedDeviceSettings(m_settings);
            m_currentQuality = startParams.RenderQuality;
#if !XB1
            m_form = control;
#else
            m_form = m_renderWindow as RenderForm;
#endif

            LoadContent();
            UpdateSize();

            //RenderLoop.UseCustomDoEvents = true;
            //RenderLoop.Run(m_form, RenderCallback);

            m_form.Show();
            while (m_form.Visible)
            {
                Application.DoEvents();
                if (m_form.Visible)
                {
                    RenderCallback();
                }
            }

            UnloadContent();

            MyRenderProxy.DisposeDevice();
        }
示例#4
0
 public void StartSync(MyGameTimer timer, IMyRenderWindow window, MyRenderDeviceSettings?settings, MyRenderQualityEnum renderQuality, float maxFrameRate)
 {
     RenderThread = MyRenderThread.StartSync(timer, window, settings, renderQuality, maxFrameRate);
 }
示例#5
0
        public static MyRenderThread StartSync(MyGameTimer timer, IMyRenderWindow renderWindow, MyRenderDeviceSettings? settingsToTry, MyRenderQualityEnum renderQuality)
        {
            var result = new MyRenderThread(timer, false);
            result.m_renderWindow = renderWindow;
            result.m_settings = MyRenderProxy.CreateDevice(result, renderWindow.Handle, settingsToTry);
            MyRenderProxy.SendCreatedDeviceSettings(result.m_settings);

            result.m_currentQuality = renderQuality;
            result.m_form = System.Windows.Forms.Control.FromHandle(renderWindow.Handle);

            result.LoadContent();
            result.UpdateSize();
            return result;
        }
示例#6
0
        private void RenderThreadStart(object param)
        {
            // TODO: OP! Initialize render log file

            ProfilerShort.Autocommit = false;

            var startParams = (StartParams)param;

            m_renderWindow = startParams.InitHandler();
            var control = System.Windows.Forms.Control.FromHandle(m_renderWindow.Handle);

            m_settings = MyRenderProxy.CreateDevice(this, m_renderWindow.Handle, startParams.SettingsToTry);
            MyRenderProxy.SendCreatedDeviceSettings(m_settings);
            m_currentQuality = startParams.RenderQuality;
            m_form = control;

            LoadContent();
            UpdateSize();

            //RenderLoop.UseCustomDoEvents = true;
            RenderLoop.Run(m_form, RenderCallback);

            UnloadContent();

            MyRenderProxy.DisposeDevice();
        }
 public void StartSync(MyGameTimer timer, IMyRenderWindow window, MyRenderDeviceSettings? settings, MyRenderQualityEnum renderQuality, float maxFrameRate)
 {
     RenderThread = MyRenderThread.StartSync(timer, window, settings, renderQuality, maxFrameRate);
 }