- fixed: Camera textures should not intercept and clear the NoInterpolateView flag.

Thanks to some really bad use of a global variable this was causing problems with the inverted order in which GZDoom needs to draw this stuff.
This commit is contained in:
Christoph Oelckers 2016-03-05 12:46:47 +01:00
parent ef9f3da31d
commit 26a05857d0
2 changed files with 7 additions and 2 deletions

View file

@ -95,7 +95,8 @@ EXTERN_CVAR (Bool, r_deathcamera)
extern int viewpitch; extern int viewpitch;
extern bool NoInterpolateView;
DWORD gl_fixedcolormap; DWORD gl_fixedcolormap;
area_t in_area; area_t in_area;
TArray<BYTE> currentmapsection; TArray<BYTE> currentmapsection;
@ -872,8 +873,12 @@ void FGLRenderer::RenderView (player_t* player)
GLRenderer->mLights->Clear(); GLRenderer->mLights->Clear();
// NoInterpolateView should have no bearing on camera textures, but needs to be preserved for the main view below.
bool saved_niv = NoInterpolateView;
NoInterpolateView = false;
// prepare all camera textures that have been used in the last frame // prepare all camera textures that have been used in the last frame
FCanvasTextureInfo::UpdateAll(); FCanvasTextureInfo::UpdateAll();
NoInterpolateView = true;
// I stopped using BaseRatioSizes here because the information there wasn't well presented. // I stopped using BaseRatioSizes here because the information there wasn't well presented.

View file

@ -80,7 +80,7 @@ struct InterpolationViewer
static TArray<InterpolationViewer> PastViewers; static TArray<InterpolationViewer> PastViewers;
static FRandom pr_torchflicker ("TorchFlicker"); static FRandom pr_torchflicker ("TorchFlicker");
static FRandom pr_hom; static FRandom pr_hom;
static bool NoInterpolateView; bool NoInterpolateView; // GL needs access to this.
static TArray<fixedvec3a> InterpolationPath; static TArray<fixedvec3a> InterpolationPath;
// PUBLIC DATA DEFINITIONS ------------------------------------------------- // PUBLIC DATA DEFINITIONS -------------------------------------------------