diff options
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/mobileopengl2graphics.cpp | 77 | ||||
-rw-r--r-- | src/render/mobileopenglgraphics.cpp | 82 | ||||
-rw-r--r-- | src/render/modernopenglgraphics.cpp | 76 | ||||
-rw-r--r-- | src/render/normalopenglgraphics.cpp | 82 | ||||
-rw-r--r-- | src/render/nullopenglgraphics.cpp | 56 | ||||
-rw-r--r-- | src/render/openglgraphicsdef.hpp | 4 | ||||
-rw-r--r-- | src/render/safeopenglgraphics.cpp | 76 |
7 files changed, 221 insertions, 232 deletions
diff --git a/src/render/mobileopengl2graphics.cpp b/src/render/mobileopengl2graphics.cpp index 7ec1d601f..a0cc9167b 100644 --- a/src/render/mobileopengl2graphics.cpp +++ b/src/render/mobileopengl2graphics.cpp @@ -345,7 +345,7 @@ void MobileOpenGL2Graphics::drawImageInline(const Image *restrict const image, debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture2(GL_TEXTURE_2D, image); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); setColorAlpha(image->mAlpha); @@ -433,7 +433,7 @@ void MobileOpenGL2Graphics::drawRescaledImage(const Image * debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture2(GL_TEXTURE_2D, image); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); @@ -484,7 +484,7 @@ void MobileOpenGL2Graphics::drawPatternInline(const Image * #endif // DEBUG_BIND_TEXTURE bindTexture2(GL_TEXTURE_2D, image); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); setColorAlpha(image->mAlpha); @@ -548,7 +548,7 @@ void MobileOpenGL2Graphics::drawRescaledPattern(const Image * #endif // DEBUG_BIND_TEXTURE bindTexture2(GL_TEXTURE_2D, image); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); setColorAlpha(image->mAlpha); @@ -719,7 +719,7 @@ void MobileOpenGL2Graphics::drawTileCollection(const ImageCollection *restrict const vertCol) restrict2 { - setTexturingAndBlending(true); + enableTexturingAndBlending(); const ImageVertexesVector &draws = vertCol->draws; const ImageCollectionCIter it_end = draws.end(); for (ImageCollectionCIter it = draws.begin(); it != it_end; ++ it) @@ -833,7 +833,7 @@ void MobileOpenGL2Graphics::drawTileVertexes(const ImageVertexes * debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture2(GL_TEXTURE_2D, image); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); drawVertexes(vert->ogl); @@ -926,7 +926,7 @@ void MobileOpenGL2Graphics::popClipArea() restrict2 void MobileOpenGL2Graphics::drawPoint(int x, int y) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); GLfloat vertices[] = @@ -947,7 +947,7 @@ void MobileOpenGL2Graphics::drawPoint(int x, int y) restrict2 void MobileOpenGL2Graphics::drawLine(int x1, int y1, int x2, int y2) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); GLfloat vertices[] = @@ -968,7 +968,7 @@ void MobileOpenGL2Graphics::drawLine(int x1, int y1, void MobileOpenGL2Graphics::drawRectangle(const Rect &restrict rect) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); const GLfloat x1 = static_cast<GLfloat>(rect.x + clipArea.xOffset); @@ -996,7 +996,7 @@ void MobileOpenGL2Graphics::drawRectangle(const Rect &restrict rect) restrict2 void MobileOpenGL2Graphics::fillRectangle(const Rect &restrict rect) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); const GLfloat x1 = static_cast<GLfloat>(rect.x + clipArea.xOffset); @@ -1022,39 +1022,36 @@ void MobileOpenGL2Graphics::fillRectangle(const Rect &restrict rect) restrict2 #endif // OPENGLERRORS } -void MobileOpenGL2Graphics::setTexturingAndBlending(const bool enable) - restrict2 +void MobileOpenGL2Graphics::enableTexturingAndBlending() restrict2 { - if (enable) + if (!mTextureDraw) { - if (!mTextureDraw) - { - mTextureDraw = true; - mglUniform1f(mDrawTypeUniform, 1.0f); - } - if (!mAlpha) - { - mglEnable(GL_BLEND); - mAlpha = true; - } + mTextureDraw = true; + mglUniform1f(mDrawTypeUniform, 1.0f); } - else + if (!mAlpha) { - if (mTextureDraw) - { - mTextureDraw = false; - mglUniform1f(mDrawTypeUniform, 0.0f); - } - if (mAlpha && !mColorAlpha) - { - mglDisable(GL_BLEND); - mAlpha = false; - } - else if (!mAlpha && mColorAlpha) - { - mglEnable(GL_BLEND); - mAlpha = true; - } + mglEnable(GL_BLEND); + mAlpha = true; + } +} + +void MobileOpenGL2Graphics::disableTexturingAndBlending() restrict2 +{ + if (mTextureDraw) + { + mTextureDraw = false; + mglUniform1f(mDrawTypeUniform, 0.0f); + } + if (mAlpha && !mColorAlpha) + { + mglDisable(GL_BLEND); + mAlpha = false; + } + else if (!mAlpha && mColorAlpha) + { + mglEnable(GL_BLEND); + mAlpha = true; } } @@ -1073,7 +1070,7 @@ void MobileOpenGL2Graphics::drawNet(const int x1, unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); const GLfloat dx = static_cast<GLfloat>(clipArea.xOffset); diff --git a/src/render/mobileopenglgraphics.cpp b/src/render/mobileopenglgraphics.cpp index b2baa7d66..853757a22 100644 --- a/src/render/mobileopenglgraphics.cpp +++ b/src/render/mobileopenglgraphics.cpp @@ -291,7 +291,7 @@ void MobileOpenGLGraphics::drawImageInline(const Image *restrict const image, debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); const SDL_Rect &imageRect = image->mBounds; drawQuad(image, imageRect.x, imageRect.y, @@ -427,7 +427,7 @@ void MobileOpenGLGraphics::completeCache() restrict2 // debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, mImageCached); - setTexturingAndBlending(true); + enableTexturingAndBlending(); drawTriangleArrayfsCached(mVpCached); mImageCached = 0; @@ -457,7 +457,7 @@ void MobileOpenGLGraphics::drawRescaledImage(const Image *restrict const image, debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); // Draw a textured quad. drawRescaledQuad(image, imageRect.x, imageRect.y, dstX, dstY, @@ -500,7 +500,7 @@ void MobileOpenGLGraphics::drawPatternInline(const Image *restrict const image, #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; @@ -565,7 +565,7 @@ void MobileOpenGLGraphics::drawRescaledPattern(const Image * #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; @@ -757,7 +757,7 @@ void MobileOpenGLGraphics::drawTileCollection(const ImageCollection * debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); drawVertexes(vert->ogl); } } @@ -860,7 +860,7 @@ void MobileOpenGLGraphics::drawTileVertexes(const ImageVertexes * debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); drawVertexes(vert->ogl); } @@ -1023,7 +1023,7 @@ void MobileOpenGLGraphics::drawPoint(int x A_UNUSED, int y A_UNUSED) restrict2 void MobileOpenGLGraphics::drawPoint(int x, int y) restrict2 #endif // ANDROID { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); #ifdef ANDROID @@ -1039,7 +1039,7 @@ void MobileOpenGLGraphics::drawPoint(int x, int y) restrict2 void MobileOpenGLGraphics::drawLine(int x1, int y1, int x2, int y2) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); mShortVertArray[0] = static_cast<GLshort>(x1); @@ -1060,43 +1060,41 @@ void MobileOpenGLGraphics::fillRectangle(const Rect &restrict rect) restrict2 drawRectangle(rect, true); } -void MobileOpenGLGraphics::setTexturingAndBlending(const bool enable) restrict2 +void MobileOpenGLGraphics::enableTexturingAndBlending() restrict2 { - if (enable) + if (!mTexture) { - if (!mTexture) - { - mglEnable(OpenGLImageHelper::mTextureType); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - mTexture = true; - } + mglEnable(OpenGLImageHelper::mTextureType); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + mTexture = true; + } - if (!mAlpha) - { - mglEnable(GL_BLEND); - mAlpha = true; - } + if (!mAlpha) + { + mglEnable(GL_BLEND); + mAlpha = true; } - else +} + +void MobileOpenGLGraphics::disableTexturingAndBlending() restrict2 +{ + mTextureBinded = 0; + if (mAlpha && !mColorAlpha) { - mTextureBinded = 0; - if (mAlpha && !mColorAlpha) - { - mglDisable(GL_BLEND); - mAlpha = false; - } - else if (!mAlpha && mColorAlpha) - { - mglEnable(GL_BLEND); - mAlpha = true; - } + mglDisable(GL_BLEND); + mAlpha = false; + } + else if (!mAlpha && mColorAlpha) + { + mglEnable(GL_BLEND); + mAlpha = true; + } - if (mTexture) - { - mglDisable(OpenGLImageHelper::mTextureType); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - mTexture = false; - } + if (mTexture) + { + mglDisable(OpenGLImageHelper::mTextureType); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + mTexture = false; } } @@ -1104,7 +1102,7 @@ void MobileOpenGLGraphics::drawRectangle(const Rect &restrict rect, const bool filled) restrict2 { BLOCK_START("Graphics::drawRectangle") - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); const GLshort x = static_cast<GLshort>(rect.x); @@ -1164,7 +1162,7 @@ void MobileOpenGLGraphics::drawNet(const int x1, const int y1, unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); const GLshort xs1 = static_cast<GLshort>(x1); diff --git a/src/render/modernopenglgraphics.cpp b/src/render/modernopenglgraphics.cpp index 7bec1f26c..35deaa52c 100644 --- a/src/render/modernopenglgraphics.cpp +++ b/src/render/modernopenglgraphics.cpp @@ -340,7 +340,7 @@ void ModernOpenGLGraphics::drawImageInline(const Image *restrict const image, debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture(GL_TEXTURE_2D, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); setColorAlpha(image->mAlpha); @@ -426,7 +426,7 @@ void ModernOpenGLGraphics::drawRescaledImage(const Image *restrict const image, debugBindTexture(image); #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); @@ -472,7 +472,7 @@ void ModernOpenGLGraphics::drawPatternInline(const Image *restrict const image, bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); setColorAlpha(image->mAlpha); @@ -535,7 +535,7 @@ void ModernOpenGLGraphics::drawRescaledPattern(const Image * bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); setColorAlpha(image->mAlpha); @@ -704,7 +704,7 @@ void ModernOpenGLGraphics::drawTileCollection(const ImageCollection *restrict const vertCol) restrict2 { - setTexturingAndBlending(true); + enableTexturingAndBlending(); /* if (!vertCol) { @@ -821,7 +821,7 @@ void ModernOpenGLGraphics::drawTileVertexes(const ImageVertexes * #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); drawVertexes(vert->ogl); @@ -912,7 +912,7 @@ void ModernOpenGLGraphics::popClipArea() restrict2 void ModernOpenGLGraphics::drawPoint(int x, int y) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); GLint vertices[] = @@ -934,7 +934,7 @@ void ModernOpenGLGraphics::drawPoint(int x, int y) restrict2 void ModernOpenGLGraphics::drawLine(int x1, int y1, int x2, int y2) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); GLint vertices[] = @@ -956,7 +956,7 @@ void ModernOpenGLGraphics::drawLine(int x1, int y1, void ModernOpenGLGraphics::drawRectangle(const Rect &restrict rect) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); const int x1 = rect.x + clipArea.xOffset; @@ -985,7 +985,7 @@ void ModernOpenGLGraphics::drawRectangle(const Rect &restrict rect) restrict2 void ModernOpenGLGraphics::fillRectangle(const Rect &restrict rect) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); const int x1 = rect.x + clipArea.xOffset; @@ -1012,38 +1012,36 @@ void ModernOpenGLGraphics::fillRectangle(const Rect &restrict rect) restrict2 #endif // OPENGLERRORS } -void ModernOpenGLGraphics::setTexturingAndBlending(const bool enable) restrict2 +void ModernOpenGLGraphics::enableTexturingAndBlending() restrict2 { - if (enable) + if (!mTextureDraw) { - if (!mTextureDraw) - { - mTextureDraw = true; - mglUniform1f(mDrawTypeUniform, 1.0f); - } - if (!mAlpha) - { - mglEnable(GL_BLEND); - mAlpha = true; - } + mTextureDraw = true; + mglUniform1f(mDrawTypeUniform, 1.0f); } - else + if (!mAlpha) { - if (mTextureDraw) - { - mTextureDraw = false; - mglUniform1f(mDrawTypeUniform, 0.0f); - } - if (mAlpha && !mColorAlpha) - { - mglDisable(GL_BLEND); - mAlpha = false; - } - else if (!mAlpha && mColorAlpha) - { - mglEnable(GL_BLEND); - mAlpha = true; - } + mglEnable(GL_BLEND); + mAlpha = true; + } +} + +void ModernOpenGLGraphics::disableTexturingAndBlending() restrict2 +{ + if (mTextureDraw) + { + mTextureDraw = false; + mglUniform1f(mDrawTypeUniform, 0.0f); + } + if (mAlpha && !mColorAlpha) + { + mglDisable(GL_BLEND); + mAlpha = false; + } + else if (!mAlpha && mColorAlpha) + { + mglEnable(GL_BLEND); + mAlpha = true; } } @@ -1059,7 +1057,7 @@ void ModernOpenGLGraphics::drawNet(const int x1, const int y1, unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; - setTexturingAndBlending(false); + disableTexturingAndBlending(); bindArrayBufferAndAttributes(mVbo); const ClipRect &clipArea = mClipStack.top(); const GLint dx = clipArea.xOffset; diff --git a/src/render/normalopenglgraphics.cpp b/src/render/normalopenglgraphics.cpp index 73013773f..1ca5e851e 100644 --- a/src/render/normalopenglgraphics.cpp +++ b/src/render/normalopenglgraphics.cpp @@ -389,7 +389,7 @@ void NormalOpenGLGraphics::drawImageInline(const Image *restrict const image, #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); const SDL_Rect &imageRect = image->mBounds; drawQuad(image, imageRect.x, imageRect.y, @@ -632,7 +632,7 @@ void NormalOpenGLGraphics::completeCache() restrict2 #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, mImageCached); - setTexturingAndBlending(true); + enableTexturingAndBlending(); if (OpenGLImageHelper::mTextureType == GL_TEXTURE_2D) drawQuadArrayfiCached(mVpCached); @@ -667,7 +667,7 @@ void NormalOpenGLGraphics::drawRescaledImage(const Image *restrict const image, #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); // Draw a textured quad. drawRescaledQuad(image, imageRect.x, imageRect.y, dstX, dstY, @@ -711,7 +711,7 @@ void NormalOpenGLGraphics::drawPatternInline(const Image *restrict const image, bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; @@ -805,7 +805,7 @@ void NormalOpenGLGraphics::drawRescaledPattern(const Image * bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; @@ -1096,7 +1096,7 @@ void NormalOpenGLGraphics::drawTileCollection(const ImageCollection #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); drawVertexes(vert->ogl); } } @@ -1219,7 +1219,7 @@ void NormalOpenGLGraphics::drawTileVertexes(const ImageVertexes * #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); drawVertexes(vert->ogl); } @@ -1387,7 +1387,7 @@ void NormalOpenGLGraphics::popClipArea() restrict2 void NormalOpenGLGraphics::drawPoint(int x, int y) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); #ifdef ANDROID @@ -1403,7 +1403,7 @@ void NormalOpenGLGraphics::drawPoint(int x, int y) restrict2 void NormalOpenGLGraphics::drawLine(int x1, int y1, int x2, int y2) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); mFloatTexArray[0] = static_cast<float>(x1) + 0.5F; @@ -1424,43 +1424,41 @@ void NormalOpenGLGraphics::fillRectangle(const Rect &restrict rect) restrict2 drawRectangle(rect, true); } -void NormalOpenGLGraphics::setTexturingAndBlending(const bool enable) restrict2 +void NormalOpenGLGraphics::enableTexturingAndBlending() restrict2 { - if (enable) + if (!mTexture) { - if (!mTexture) - { - glEnable(OpenGLImageHelper::mTextureType); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - mTexture = true; - } + glEnable(OpenGLImageHelper::mTextureType); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + mTexture = true; + } - if (!mAlpha) - { - glEnable(GL_BLEND); - mAlpha = true; - } + if (!mAlpha) + { + glEnable(GL_BLEND); + mAlpha = true; } - else +} + +void NormalOpenGLGraphics::disableTexturingAndBlending() restrict2 +{ + mTextureBinded = 0; + if (mAlpha && !mColorAlpha) { - mTextureBinded = 0; - if (mAlpha && !mColorAlpha) - { - glDisable(GL_BLEND); - mAlpha = false; - } - else if (!mAlpha && mColorAlpha) - { - glEnable(GL_BLEND); - mAlpha = true; - } + glDisable(GL_BLEND); + mAlpha = false; + } + else if (!mAlpha && mColorAlpha) + { + glEnable(GL_BLEND); + mAlpha = true; + } - if (mTexture) - { - glDisable(OpenGLImageHelper::mTextureType); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - mTexture = false; - } + if (mTexture) + { + glDisable(OpenGLImageHelper::mTextureType); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + mTexture = false; } } @@ -1474,7 +1472,7 @@ void NormalOpenGLGraphics::drawRectangle(const Rect &restrict rect, const float width = static_cast<float>(rect.width); const float height = static_cast<float>(rect.height); - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); GLfloat vert[] = @@ -1505,7 +1503,7 @@ void NormalOpenGLGraphics::drawNet(const int x1, const int y1, unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); const float xf1 = static_cast<float>(x1); diff --git a/src/render/nullopenglgraphics.cpp b/src/render/nullopenglgraphics.cpp index c5c18295d..2526c9feb 100644 --- a/src/render/nullopenglgraphics.cpp +++ b/src/render/nullopenglgraphics.cpp @@ -181,7 +181,7 @@ void NullOpenGLGraphics::drawImageInline(const Image *restrict const image, #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); const SDL_Rect &imageRect = image->mBounds; drawQuad(image, imageRect.x, imageRect.y, dstX, dstY, @@ -232,7 +232,7 @@ void NullOpenGLGraphics::drawRescaledImage(const Image *restrict const image, #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); // Draw a textured quad. drawRescaledQuad(image, imageRect.x, imageRect.y, dstX, dstY, @@ -274,7 +274,7 @@ void NullOpenGLGraphics::drawPatternInline(const Image *restrict const image, bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; @@ -408,7 +408,7 @@ void NullOpenGLGraphics::drawRescaledPattern(const Image *restrict const image, bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; @@ -755,7 +755,7 @@ void NullOpenGLGraphics::drawTileCollection(const ImageCollection #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); drawVertexes(vert->ogl); } } @@ -917,7 +917,7 @@ void NullOpenGLGraphics::drawTileVertexes(const ImageVertexes * #endif // DEBUG_BIND_TEXTURE bindTexture(OpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); drawVertexes(vert->ogl); } @@ -996,14 +996,14 @@ void NullOpenGLGraphics::popClipArea() restrict2 void NullOpenGLGraphics::drawPoint(int x A_UNUSED, int y A_UNUSED) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); } void NullOpenGLGraphics::drawLine(int x1, int y1, int x2, int y2) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); mFloatTexArray[0] = static_cast<float>(x1) + 0.5F; @@ -1024,34 +1024,32 @@ void NullOpenGLGraphics::fillRectangle(const Rect &restrict rect) restrict2 drawRectangle(rect, true); } -void NullOpenGLGraphics::setTexturingAndBlending(const bool enable) restrict2 +void NullOpenGLGraphics::enableTexturingAndBlending() restrict2 { - if (enable) - { - if (!mTexture) - mTexture = true; + if (!mTexture) + mTexture = true; - if (!mAlpha) - mAlpha = true; - } - else - { - mTextureBinded = 0; - if (mAlpha && !mColorAlpha) - mAlpha = false; - else if (!mAlpha && mColorAlpha) - mAlpha = true; - - if (mTexture) - mTexture = false; - } + if (!mAlpha) + mAlpha = true; +} + +void NullOpenGLGraphics::disableTexturingAndBlending() restrict2 +{ + mTextureBinded = 0; + if (mAlpha && !mColorAlpha) + mAlpha = false; + else if (!mAlpha && mColorAlpha) + mAlpha = true; + + if (mTexture) + mTexture = false; } void NullOpenGLGraphics::drawRectangle(const Rect &restrict rect A_UNUSED, const bool filled A_UNUSED) restrict2 { BLOCK_START("Graphics::drawRectangle") - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); #ifdef DEBUG_DRAW_CALLS @@ -1068,7 +1066,7 @@ void NullOpenGLGraphics::drawNet(const int x1, const int y1, unsigned int vp = 0; const unsigned int vLimit = mMaxVertices * 4; - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); const float xf1 = static_cast<float>(x1); diff --git a/src/render/openglgraphicsdef.hpp b/src/render/openglgraphicsdef.hpp index 48d3ccd25..7a4fd4e1e 100644 --- a/src/render/openglgraphicsdef.hpp +++ b/src/render/openglgraphicsdef.hpp @@ -48,7 +48,9 @@ public: static GLuint mTextureBinded; protected: - void setTexturingAndBlending(const bool enable) restrict2; + void enableTexturingAndBlending() restrict2; + + void disableTexturingAndBlending() restrict2; private: void inline setColorAlpha(const float alpha) restrict2 A_INLINE; diff --git a/src/render/safeopenglgraphics.cpp b/src/render/safeopenglgraphics.cpp index 5eef25e2b..c5c10ad3d 100644 --- a/src/render/safeopenglgraphics.cpp +++ b/src/render/safeopenglgraphics.cpp @@ -181,7 +181,7 @@ void SafeOpenGLGraphics::drawImageInline(const Image *restrict const image, setColorAlpha(image->mAlpha); bindTexture(SafeOpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); const SDL_Rect &bounds = image->mBounds; // Draw a textured quad. @@ -236,7 +236,7 @@ void SafeOpenGLGraphics::drawImageCached(const Image *restrict const image, setColorAlpha(image->mAlpha); bindTexture(SafeOpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); const SDL_Rect &bounds = image->mBounds; // Draw a textured quad. @@ -264,7 +264,7 @@ void SafeOpenGLGraphics::drawPatternCached(const Image *restrict const image, setColorAlpha(image->mAlpha); bindTexture(SafeOpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); // Draw a set of textured rectangles glBegin(GL_QUADS); @@ -308,7 +308,7 @@ void SafeOpenGLGraphics::drawRescaledImage(const Image *restrict const image, setColorAlpha(image->mAlpha); bindTexture(SafeOpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); // Draw a textured quad. glBegin(GL_QUADS); @@ -343,7 +343,7 @@ void SafeOpenGLGraphics::drawPatternInline(const Image *restrict const image, setColorAlpha(image->mAlpha); bindTexture(SafeOpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); // Draw a set of textured rectangles glBegin(GL_QUADS); @@ -383,7 +383,7 @@ void SafeOpenGLGraphics::drawRescaledPattern(const Image *restrict const image, setColorAlpha(image->mAlpha); bindTexture(SafeOpenGLImageHelper::mTextureType, image->mGLImage); - setTexturingAndBlending(true); + enableTexturingAndBlending(); // Draw a set of textured rectangles glBegin(GL_QUADS); @@ -583,7 +583,7 @@ void SafeOpenGLGraphics::popClipArea() restrict2 void SafeOpenGLGraphics::drawPoint(int x, int y) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); glBegin(GL_POINTS); @@ -595,7 +595,7 @@ void SafeOpenGLGraphics::drawNet(const int x1, const int y1, const int x2, const int y2, const int width, const int height) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); glBegin(GL_LINES); @@ -620,7 +620,7 @@ void SafeOpenGLGraphics::drawNet(const int x1, const int y1, void SafeOpenGLGraphics::drawLine(int x1, int y1, int x2, int y2) restrict2 { - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); glBegin(GL_LINES); @@ -639,41 +639,39 @@ void SafeOpenGLGraphics::fillRectangle(const Rect &restrict rect) restrict2 drawRectangle(rect, true); } -void SafeOpenGLGraphics::setTexturingAndBlending(const bool enable) restrict2 +void SafeOpenGLGraphics::enableTexturingAndBlending() restrict2 { - if (enable) + if (!mTexture) { - if (!mTexture) - { - glEnable(SafeOpenGLImageHelper::mTextureType); - mTexture = true; - } + glEnable(SafeOpenGLImageHelper::mTextureType); + mTexture = true; + } - if (!mAlpha) - { - glEnable(GL_BLEND); - mAlpha = true; - } + if (!mAlpha) + { + glEnable(GL_BLEND); + mAlpha = true; } - else +} + +void SafeOpenGLGraphics::disableTexturingAndBlending() restrict2 +{ + mTextureBinded = 0; + if (mAlpha && !mColorAlpha) { - mTextureBinded = 0; - if (mAlpha && !mColorAlpha) - { - glDisable(GL_BLEND); - mAlpha = false; - } - else if (!mAlpha && mColorAlpha) - { - glEnable(GL_BLEND); - mAlpha = true; - } + glDisable(GL_BLEND); + mAlpha = false; + } + else if (!mAlpha && mColorAlpha) + { + glEnable(GL_BLEND); + mAlpha = true; + } - if (mTexture) - { - glDisable(SafeOpenGLImageHelper::mTextureType); - mTexture = false; - } + if (mTexture) + { + glDisable(SafeOpenGLImageHelper::mTextureType); + mTexture = false; } } @@ -683,7 +681,7 @@ void SafeOpenGLGraphics::drawRectangle(const Rect &restrict rect, BLOCK_START("Graphics::drawRectangle") const float offset = filled ? 0 : 0.5F; - setTexturingAndBlending(false); + disableTexturingAndBlending(); restoreColor(); glBegin(filled ? GL_QUADS : GL_LINE_LOOP); |