Пример #1
0
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.LightGray);
            _deviceState.Push();
            RenderBackGround();
            _deviceState.Pop();

            _drawMetrics = GraphicsDevice.Metrics;

            switch (State.RenderState)
            {
            case RenderState.ShadowMap:
            case RenderState.Depth:
                RenderModel();
                break;

            case RenderState.Simple:
                RenderModelNoShadow();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            _drawMetrics = GraphicsDevice.Metrics - _drawMetrics;

            _deviceState.Push();

            RenderUI();

            // Render components
            base.Draw(gameTime);
            _deviceState.Pop();
        }
Пример #2
0
        /// <summary>
        /// 自己的帧绘制更新函数
        /// </summary>
        private void MyFKGameDraw(GameTime gameTime)
        {
            if (m_bIsFirstTimeDraw && m_bIsEditorMode)
            {
                HideMonoWindow();
                m_bIsFirstTimeDraw = false;
            }

            if (m_GameState.GetRenderState().RenderType == RenderState.ENUM_RenderType.eRS_ShadowMap)
            {
                UpdateShadowMap();
            }

            RenderDefaultBackground();

            m_DrawMatrics = GraphicsDevice.Metrics;                 // 临时缓存渲染模型之前的渲染数据
            switch (m_GameState.GetRenderState().RenderType)
            {
            case RenderState.ENUM_RenderType.eRS_SimpleRender:
                RenderModel(false, false);
                break;

            case RenderState.ENUM_RenderType.eRS_ShadowMap:
                RenderModel(true, true);
                break;

            case RenderState.ENUM_RenderType.eRS_Depth:
                RenderModel(true, false);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            m_DrawMatrics = GraphicsDevice.Metrics - m_DrawMatrics;// 相减获得模型本身的渲染数据

            RenderUI(gameTime);
        }