Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath

This commit is contained in:
Magnus Norddahl 2016-09-13 23:44:12 +02:00
commit c54b4e74f5
5 changed files with 16 additions and 5 deletions

View file

@ -1747,6 +1747,14 @@ void C_AddTabCommand (const char *name)
void C_RemoveTabCommand (const char *name) void C_RemoveTabCommand (const char *name)
{ {
if (TabCommands.Size() == 0)
{
// There are no tab commands that can be removed.
// This is important to skip construction of aname
// in case the NameManager has already been destroyed.
return;
}
FName aname(name, true); FName aname(name, true);
if (aname == NAME_None) if (aname == NAME_None)

View file

@ -422,7 +422,7 @@ void
VSMatrix::computeNormalMatrix(const FLOATTYPE *aMatrix) VSMatrix::computeNormalMatrix(const FLOATTYPE *aMatrix)
{ {
FLOATTYPE mMat3x3[9]; double mMat3x3[9];
mMat3x3[0] = aMatrix[0]; mMat3x3[0] = aMatrix[0];
mMat3x3[1] = aMatrix[1]; mMat3x3[1] = aMatrix[1];
@ -436,7 +436,7 @@ VSMatrix::computeNormalMatrix(const FLOATTYPE *aMatrix)
mMat3x3[7] = aMatrix[9]; mMat3x3[7] = aMatrix[9];
mMat3x3[8] = aMatrix[10]; mMat3x3[8] = aMatrix[10];
FLOATTYPE det, invDet; double det, invDet;
det = mMat3x3[0] * (mMat3x3[4] * mMat3x3[8] - mMat3x3[5] * mMat3x3[7]) + det = mMat3x3[0] * (mMat3x3[4] * mMat3x3[8] - mMat3x3[5] * mMat3x3[7]) +
mMat3x3[1] * (mMat3x3[5] * mMat3x3[6] - mMat3x3[8] * mMat3x3[3]) + mMat3x3[1] * (mMat3x3[5] * mMat3x3[6] - mMat3x3[8] * mMat3x3[3]) +

View file

@ -375,7 +375,7 @@ void GLSprite::Draw(int pass)
gl_RenderState.Apply(); gl_RenderState.Apply();
FVector3 v[4]; FVector3 v[4];
if ((actor->renderflags & RF_SPRITETYPEMASK) == RF_FLATSPRITE) if (actor != nullptr && (actor->renderflags & RF_SPRITETYPEMASK) == RF_FLATSPRITE)
{ {
} }
else else
@ -437,7 +437,7 @@ inline void GLSprite::PutSprite(bool translucent)
{ {
int list; int list;
// [BB] Allow models to be drawn in the GLDL_TRANSLUCENT pass. // [BB] Allow models to be drawn in the GLDL_TRANSLUCENT pass.
if (translucent || (!modelframe && (actor->renderflags & RF_SPRITETYPEMASK) != RF_WALLSPRITE)) if (translucent || actor == nullptr || (!modelframe && (actor->renderflags & RF_SPRITETYPEMASK) != RF_WALLSPRITE))
{ {
list = GLDL_TRANSLUCENT; list = GLDL_TRANSLUCENT;
} }

View file

@ -197,7 +197,7 @@ void OpenGLFrameBuffer::Update()
Unlock(); Unlock();
CheckBench(); CheckBench();
if (Windowed) if (!IsFullscreen())
{ {
int clientWidth = GetClientWidth(); int clientWidth = GetClientWidth();
int clientHeight = GetClientHeight(); int clientHeight = GetClientHeight();

View file

@ -35,6 +35,7 @@
#include <string.h> #include <string.h>
#include "name.h" #include "name.h"
#include "c_dispatch.h" #include "c_dispatch.h"
#include "c_console.h"
// MACROS ------------------------------------------------------------------ // MACROS ------------------------------------------------------------------
@ -268,6 +269,8 @@ FName::NameManager::~NameManager()
{ {
NameBlock *block, *next; NameBlock *block, *next;
C_ClearTabCommands();
for (block = Blocks; block != NULL; block = next) for (block = Blocks; block != NULL; block = next)
{ {
next = block->NextBlock; next = block->NextBlock;