- track level start time for the shader system, reset the shaders.

This commit is contained in:
Rachael Alexanderson 2017-11-15 11:06:21 -05:00
commit ab32cb4c88
4 changed files with 7 additions and 2 deletions

View file

@ -37,6 +37,7 @@
#include "gl/renderer/gl_colormap.h"
#include "gl/dynlights//gl_lightbuffer.h"
#include "gl/renderer/gl_renderbuffers.h"
#include "g_levellocals.h"
void gl_SetTextureMode(int type);
@ -121,7 +122,7 @@ bool FRenderState::ApplyShader()
static uint64_t firstFrame = 0;
// if firstFrame is not yet initialized, initialize it to current time
// if we're going to overflow a float (after ~4.6 hours, or 24 bits), re-init to regain precision
if ((firstFrame == 0) || (screen->FrameTime - firstFrame >= 1<<24))
if ((firstFrame == 0) || (screen->FrameTime - firstFrame >= 1<<24) || level.ShaderStartTime > firstFrame)
firstFrame = screen->FrameTime;
static const float nulvec[] = { 0.f, 0.f, 0.f, 0.f };