summaryrefslogtreecommitdiff
path: root/src/openglgraphics.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-07-22 21:24:31 +0200
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-08-05 17:14:58 +0200
commit1bc84de412775abcef84c1f604160121f245b131 (patch)
tree9ffe1bdf5a9edeb23899e8e430bf7b28d0382c43 /src/openglgraphics.cpp
parent10c75a337be97c93b6de839402461fd400baf128 (diff)
downloadmana-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.cpp5
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;