From 115d86817fa12f4bb1d248d33ab659091ea0e85b Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 19 Dec 2011 20:32:28 +0000 Subject: [PATCH] Minor win32 GL fix. --- .../native/juce_OpenGLExtensions.h | 1 + .../opengl/juce_OpenGLGraphicsContext.cpp | 34 ++++++++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/modules/juce_opengl/native/juce_OpenGLExtensions.h b/modules/juce_opengl/native/juce_OpenGLExtensions.h index 4d74bf5995..f82c55ddc5 100644 --- a/modules/juce_opengl/native/juce_OpenGLExtensions.h +++ b/modules/juce_opengl/native/juce_OpenGLExtensions.h @@ -115,6 +115,7 @@ enum typedef char GLchar; typedef long GLsizeiptr; +typedef long GLintptr; #define WGL_FUNCTION_LIST(USE_FUNCTION) \ USE_FUNCTION (wglChoosePixelFormatARB, BOOL, (HDC, const int*, const FLOAT*, UINT, int*, UINT*))\ diff --git a/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp b/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp index 2c3eae9a64..e97e6694e6 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp @@ -958,6 +958,26 @@ struct StateHelpers setActiveTexture (0); } + template + void setTwoTextureMode (QuadQueueType& quadQueue, GLuint texture1, GLuint texture2) + { + setTexturesEnabled (quadQueue, 3); + + if (currentActiveTexture == 0) + { + bindTexture (texture1); + setActiveTexture (1); + bindTexture (texture2); + } + else + { + setActiveTexture (1); + bindTexture (texture2); + setActiveTexture (0); + bindTexture (texture1); + } + } + void setActiveTexture (const int index) noexcept { if (currentActiveTexture != index) @@ -1071,12 +1091,12 @@ struct StateHelpers : numVertices (0) {} - ~ShaderQuadQueue() + ~ShaderQuadQueue() noexcept { glDeleteBuffers (2, buffers); } - void initialise() + void initialise() noexcept { for (int i = 0, v = 0; i < numQuads * 6; i += 6, v += 4) { @@ -1125,13 +1145,13 @@ struct StateHelpers RenderingHelpers::FloatRectangleRasterisingInfo (r).iterate (frr); } - void add (const RectangleList& list, const PixelARGB& colour) + void add (const RectangleList& list, const PixelARGB& colour) noexcept { for (RectangleList::Iterator i (list); i.next();) add (*i.getRectangle(), colour); } - void add (const RectangleList& list, const Rectangle& clip, const PixelARGB& colour) + void add (const RectangleList& list, const Rectangle& clip, const PixelARGB& colour) noexcept { for (RectangleList::Iterator i (list); i.next();) { @@ -1697,11 +1717,7 @@ public: if (maskArea != nullptr) { - activeTextures.setTexturesEnabled (shaderQuadQueue, 3); - activeTextures.setActiveTexture (1); - activeTextures.bindTexture (maskTextureID); - activeTextures.setActiveTexture (0); - activeTextures.bindTexture (image.textureID); + activeTextures.setTwoTextureMode (shaderQuadQueue, image.textureID, maskTextureID); if (clampTiledImages) {