Use gl_RenderState to manipulate OpenGL color mask for anaglyph modes, to avoid glGet...
This commit is contained in:
parent
95f4134630
commit
ac6e2f4979
4 changed files with 71 additions and 12 deletions
|
|
@ -70,6 +70,8 @@ void FRenderState::Reset()
|
|||
{
|
||||
mTextureEnabled = true;
|
||||
mBrightmapEnabled = mFogEnabled = mGlowEnabled = false;
|
||||
mColorMask[0] = mColorMask[1] = mColorMask[2] = mColorMask[3] = true;
|
||||
currentColorMask[0] = currentColorMask[1] = currentColorMask[2] = currentColorMask[3] = true;
|
||||
mFogColor.d = -1;
|
||||
mTextureMode = -1;
|
||||
mLightIndex = -1;
|
||||
|
|
@ -257,6 +259,8 @@ void FRenderState::Apply()
|
|||
}
|
||||
}
|
||||
|
||||
ApplyColorMask();
|
||||
|
||||
if (mVertexBuffer != mCurrentVertexBuffer)
|
||||
{
|
||||
if (mVertexBuffer == NULL) glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
|
|
@ -268,6 +272,21 @@ void FRenderState::Apply()
|
|||
|
||||
|
||||
|
||||
void FRenderState::ApplyColorMask()
|
||||
{
|
||||
if ((mColorMask[0] != currentColorMask[0]) ||
|
||||
(mColorMask[1] != currentColorMask[1]) ||
|
||||
(mColorMask[2] != currentColorMask[2]) ||
|
||||
(mColorMask[3] != currentColorMask[3]))
|
||||
{
|
||||
glColorMask(mColorMask[0], mColorMask[1], mColorMask[2], mColorMask[3]);
|
||||
currentColorMask[0] = mColorMask[0];
|
||||
currentColorMask[1] = mColorMask[1];
|
||||
currentColorMask[2] = mColorMask[2];
|
||||
currentColorMask[3] = mColorMask[3];
|
||||
}
|
||||
}
|
||||
|
||||
void FRenderState::ApplyMatrices()
|
||||
{
|
||||
if (GLRenderer->mShaderManager != NULL)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue