public void EditorThread_CreateScene(IRenderSurface renderSurface, EInputClass cameraInputClass)
        {
            IsCreated = true;
            OnEngineThread(() =>
            {
                Input.RegisterListener(EngineThread_OnInputEvent, cameraInputClass);
                // Create a new renderer scene with our viewport
                SSceneViewInfo viewInfo       = new SSceneViewInfo();
                viewInfo.Fov                  = FieldOfView;
                viewInfo.ScreenFar            = ScreenFar;
                viewInfo.ScreenNear           = ScreenNear;
                viewInfo.FitProjectionToScene = true;
                viewInfo.ViewMatrix           = Matrix.Invert(m_cameraTransform.WorldMatrix);
                viewInfo.ViewLocation         = m_cameraTransform.Position;
                viewInfo.CreateBoundingFrustum();

                m_renderScene = CRenderer.Instance.CreateRenderScene(renderSurface);
                if (m_renderScene != null)
                {
                    m_renderScene.OnDoFrame += EngineThread_Update;
                    m_renderScene.UpdateViewInfo(in viewInfo);
                    m_ambientLight                    = new CAmbientLight();
                    m_ambientLight.LightColor         = Vector4.One * 0.2f;
                    m_directionalLight                = new CDirectionalLight();
                    m_directionalLight.LightDirection = new Vector3(0.3f, -0.7f, 0.0f);
                    m_directionalLight.LightColor     = Vector4.One * 0.8f;
                    m_renderScene.LightManager.AddLight(m_ambientLight);
                    m_renderScene.LightManager.AddLight(m_directionalLight);
                }
            });
        }
        protected override void UpdateRenderData(float deltaTime)
        {
            CDirectionalLight dirLight = (CDirectionalLight)m_renderLight;

            dirLight.Enabled        = Enabled;
            dirLight.LightColor     = LightColor;
            dirLight.LightDirection = m_transform.Forward;
        }
        protected override void CreateRenderLight()
        {
            CDirectionalLight dirLight = new CDirectionalLight();

            dirLight.Enabled        = Enabled;
            dirLight.LightColor     = LightColor;
            dirLight.LightDirection = m_transform.Forward;
            m_renderLight           = dirLight;
        }