Пример #1
0
        /// <summary>
        /// Hacer render del ejemplo
        /// </summary>
        internal void render()
        {
            Device d3dDevice = tgcD3dDevice.D3dDevice;

            elapsedTime = HighResolutionTimer.Instance.FrameTime;

            tgcD3dDevice.doClear();

            //Acutalizar input
            tgcD3dInput.update();

            //Actualizar camaras (solo una va a estar activada a la vez)
            if (currentCamera.Enable)
            {
                this.currentCamera.updateCamera();
                this.currentCamera.updateViewMatrix(d3dDevice);
            }

            //actualizar posicion de pantalla en barra de estado de UI
            setStatusPosition();

            //actualizar el Frustum
            frustum.updateVolume(d3dDevice.Transform.View, d3dDevice.Transform.Projection);

            //limpiar texturas
            texturesManager.clearAll();

            //actualizar Listener3D
            directSound.updateListener3d();


            //Hacer render delegando control total al ejemplo
            if (customRenderEnabled)
            {
                //Ejecutar render del ejemplo
                if (currentExample != null)
                {
                    currentExample.render(elapsedTime);
                }
            }

            //Hacer render asistido (mas sencillo para el ejemplo)
            else
            {
                //Iniciar escena 3D
                d3dDevice.BeginScene();

                //Actualizar contador de FPS si esta activo
                if (fpsCounterEnable)
                {
                    text3d.drawText("FPS: " + HighResolutionTimer.Instance.FramesPerSecond, 0, 0, Color.Yellow);
                }

                //Ejecutar render del ejemplo
                if (currentExample != null)
                {
                    currentExample.render(elapsedTime);
                }


                //Ejes cartesianos
                if (axisLines.Enable)
                {
                    axisLines.render();
                }

                //Finalizar escena 3D
                d3dDevice.EndScene();
            }



            d3dDevice.Present();
            //this.Invalidate();
        }