summaryrefslogtreecommitdiff
path: root/vcl/source/opengl/OpenGLHelper.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-07-03 14:38:24 +0900
committerCaolán McNamara <caolanm@redhat.com>2015-07-08 15:36:51 +0000
commit5de8f1559afafe4a5430142c305549223d467606 (patch)
tree01b27cd552a6e9049abb30799d8f1634753859cf /vcl/source/opengl/OpenGLHelper.cxx
parente1ab783539b495e12fc769ac493db3f5cebec106 (diff)
tdf#88831 fix inverted textures when OpenGL is enabled
GLX returns a wrong value if the y coords are inverted. Most other programs don't even ask for this (gnome-shell for example) and just assumes "true" (and this works because most relevant X servers work like this). We make this more robust and assume true only if the returned value is GLX_DONT_CARE (-1). Change-Id: I4800b3364fd00f5f4a8f5a459472bfa8d97827ba Reviewed-on: https://gerrit.libreoffice.org/16860 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/source/opengl/OpenGLHelper.cxx')
-rw-r--r--vcl/source/opengl/OpenGLHelper.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx
index 3acb0c667a94..41881da1e46b 100644
--- a/vcl/source/opengl/OpenGLHelper.cxx
+++ b/vcl/source/opengl/OpenGLHelper.cxx
@@ -539,7 +539,11 @@ GLXFBConfig OpenGLHelper::GetPixmapFBConfig( Display* pDisplay, bool& bInverted
}
glXGetFBConfigAttrib( pDisplay, aFbConfigs[i], GLX_Y_INVERTED_EXT, &nValue );
- bInverted = nValue == True;
+
+ // Looks like that X sends GLX_DONT_CARE but this usually means "true" for most
+ // of the X implementations. Investigation on internet pointed that this could be
+ // safely "true" all the time (for example gnome-shell always assumes "true").
+ bInverted = nValue == True || nValue == int(GLX_DONT_CARE);
break;
}