From 93e9c383faee3ea4971ec365bc14e71d09d07f06 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 12 Nov 2017 18:51:11 +0100 Subject: [PATCH] - get the timer used for animation only once at the very beginning of the frame and pass it on to the renderer to avoid any dependencies on the timer's implementation. --- src/d_main.cpp | 2 +- src/gl/renderer/gl_renderer.h | 2 +- src/gl/scene/gl_scene.cpp | 10 +++++----- src/gl/scene/gl_scenedrawer.h | 2 +- src/r_renderer.h | 2 +- src/swrenderer/r_swrenderer.cpp | 2 +- src/swrenderer/r_swrenderer.h | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/d_main.cpp b/src/d_main.cpp index 7c426375a..5e0eff1d1 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -808,7 +808,7 @@ void D_Display () // [ZZ] execute event hook that we just started the frame //E_RenderFrame(); // - Renderer->RenderView(&players[consoleplayer]); + Renderer->RenderView(&players[consoleplayer], nowtime); if ((hw2d = screen->Begin2D(viewactive))) { diff --git a/src/gl/renderer/gl_renderer.h b/src/gl/renderer/gl_renderer.h index e3924ad40..f8d710467 100644 --- a/src/gl/renderer/gl_renderer.h +++ b/src/gl/renderer/gl_renderer.h @@ -171,7 +171,7 @@ public: unsigned char *GetTextureBuffer(FTexture *tex, int &w, int &h); void SetupLevel(); - void RenderView(player_t* player); + void RenderView(player_t* player, unsigned int nowtime); void RenderScreenQuad(); void PostProcessScene(int fixedcm); diff --git a/src/gl/scene/gl_scene.cpp b/src/gl/scene/gl_scene.cpp index ae9e08989..c900c21d7 100644 --- a/src/gl/scene/gl_scene.cpp +++ b/src/gl/scene/gl_scene.cpp @@ -878,7 +878,7 @@ sector_t * GLSceneDrawer::RenderViewpoint (AActor * camera, GL_IRECT * bounds, f // //----------------------------------------------------------------------------- -void FGLRenderer::RenderView (player_t* player) +void FGLRenderer::RenderView (player_t* player, unsigned int nowtime) { checkBenchActive(); @@ -891,7 +891,7 @@ void FGLRenderer::RenderView (player_t* player) // Get this before everything else if (cl_capfps || r_NoInterpolate) r_viewpoint.TicFrac = 1.; else r_viewpoint.TicFrac = I_GetTimeFrac (&r_viewpoint.FrameTime); - gl_frameMS = I_MSTime(); + gl_frameMS = nowtime; P_FindParticleSubsectors (); @@ -984,7 +984,7 @@ void GLSceneDrawer::WriteSavePic (player_t *player, FileWriter *file, int width, struct FGLInterface : public FRenderer { void Precache(uint8_t *texhitlist, TMap &actorhitlist) override; - void RenderView(player_t *player) override; + void RenderView(player_t *player, unsigned int nowtime) override; void WriteSavePic (player_t *player, FileWriter *file, int width, int height) override; void StartSerialize(FSerializer &arc) override; void EndSerialize(FSerializer &arc) override; @@ -1075,9 +1075,9 @@ void FGLInterface::WriteSavePic (player_t *player, FileWriter *file, int width, // //=========================================================================== -void FGLInterface::RenderView(player_t *player) +void FGLInterface::RenderView(player_t *player, unsigned int nowtime) { - GLRenderer->RenderView(player); + GLRenderer->RenderView(player, nowtime); } //=========================================================================== diff --git a/src/gl/scene/gl_scenedrawer.h b/src/gl/scene/gl_scenedrawer.h index 9209e6dad..6e4fa143d 100644 --- a/src/gl/scene/gl_scenedrawer.h +++ b/src/gl/scene/gl_scenedrawer.h @@ -60,7 +60,7 @@ public: void CheckViewArea(vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector); sector_t *RenderViewpoint(AActor * camera, GL_IRECT * bounds, float fov, float ratio, float fovratio, bool mainview, bool toscreen); - void RenderView(player_t *player); + void RenderView(player_t *player, unsigned int nowtime); void WriteSavePic(player_t *player, FileWriter *file, int width, int height); void DrawPSprite(player_t * player, DPSprite *psp, float sx, float sy, bool hudModelStep, int OverrideShader, bool alphatexture); diff --git a/src/r_renderer.h b/src/r_renderer.h index 54952bc29..0165c33b8 100644 --- a/src/r_renderer.h +++ b/src/r_renderer.h @@ -29,7 +29,7 @@ struct FRenderer virtual void Precache(uint8_t *texhitlist, TMap &actorhitlist) = 0; // render 3D view - virtual void RenderView(player_t *player) = 0; + virtual void RenderView(player_t *player, unsigned int nowtime) = 0; // Remap voxel palette virtual void RemapVoxels() {} diff --git a/src/swrenderer/r_swrenderer.cpp b/src/swrenderer/r_swrenderer.cpp index 19bf055a6..ca8d03087 100644 --- a/src/swrenderer/r_swrenderer.cpp +++ b/src/swrenderer/r_swrenderer.cpp @@ -170,7 +170,7 @@ void FSoftwareRenderer::Precache(uint8_t *texhitlist, TMap & } } -void FSoftwareRenderer::RenderView(player_t *player) +void FSoftwareRenderer::RenderView(player_t *player, unsigned int /*nowtime*/) { if (r_polyrenderer) { diff --git a/src/swrenderer/r_swrenderer.h b/src/swrenderer/r_swrenderer.h index 19f75758f..05d00ecec 100644 --- a/src/swrenderer/r_swrenderer.h +++ b/src/swrenderer/r_swrenderer.h @@ -13,7 +13,7 @@ struct FSoftwareRenderer : public FRenderer void Precache(uint8_t *texhitlist, TMap &actorhitlist) override; // render 3D view - void RenderView(player_t *player) override; + void RenderView(player_t *player, unsigned int nowtime) override; // Remap voxel palette void RemapVoxels() override;