diff options
author | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-07-22 21:24:31 +0200 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-08-05 17:14:58 +0200 |
commit | 1bc84de412775abcef84c1f604160121f245b131 (patch) | |
tree | 9ffe1bdf5a9edeb23899e8e430bf7b28d0382c43 /src/openglgraphics.cpp | |
parent | 10c75a337be97c93b6de839402461fd400baf128 (diff) | |
download | mana-1bc84de412775abcef84c1f604160121f245b131.tar.gz mana-1bc84de412775abcef84c1f604160121f245b131.tar.bz2 mana-1bc84de412775abcef84c1f604160121f245b131.tar.xz mana-1bc84de412775abcef84c1f604160121f245b131.zip |
Added support for ARB_texture_non_power_of_two extension
If the graphics driver supports this, there is no need to create
textures with power-of-two dimensions. It is then also preferred to use
regular textures than relying on the older GL_ARB_texture_rectangle
extension.
Reviewed-by: Erik Schilling
Diffstat (limited to 'src/openglgraphics.cpp')
-rw-r--r-- | src/openglgraphics.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/openglgraphics.cpp b/src/openglgraphics.cpp index 66d0d0fc..50fee075 100644 --- a/src/openglgraphics.cpp +++ b/src/openglgraphics.cpp @@ -113,14 +113,17 @@ bool OpenGLGraphics::setVideoMode(int w, int h, int bpp, bool fs, bool hwaccel) char const *glExtensions = (char const *)glGetString(GL_EXTENSIONS); GLint texSize; bool rectTex = strstr(glExtensions, "GL_ARB_texture_rectangle"); - if (rectTex) + bool npotTex = strstr(glExtensions, "GL_ARB_texture_non_power_of_two"); + if (rectTex && !npotTex) { Image::mTextureType = GL_TEXTURE_RECTANGLE_ARB; + Image::mPowerOfTwoTextures = false; glGetIntegerv(GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB, &texSize); } else { Image::mTextureType = GL_TEXTURE_2D; + Image::mPowerOfTwoTextures = !npotTex; glGetIntegerv(GL_MAX_TEXTURE_SIZE, &texSize); } Image::mTextureSize = texSize; |