summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2018-04-27 15:39:32 +0200
committerCaolán McNamara <caolanm@redhat.com>2018-05-03 22:04:14 +0200
commit443b2e6359955b107ba951636b2491b9444d0fee (patch)
treedca6274bebad37434c67126ebe763bee9ea25d6b
parent8a9e5326e77e86de2962ee7569d883091f7fe4c7 (diff)
tdf#116365 vcl opengl: respect max texture size when creating textures
I can't reproduce the crash, but the image in the bugdoc is a large one (23100 x 1364 pixels) and it was black for me. It's rendered correctly now. (cherry picked from commit a3cbd06872b2f9ee9253e5879f590ff1b9eaf365) Change-Id: I72c395af12ef88cf1352602492b84e1dcd04ed14 Reviewed-on: https://gerrit.libreoffice.org/53771 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--vcl/opengl/salbmp.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx
index 6a032200670e..1ae3e2ae4a01 100644
--- a/vcl/opengl/salbmp.cxx
+++ b/vcl/opengl/salbmp.cxx
@@ -171,6 +171,15 @@ bool OpenGLSalBitmap::Create( const Size& rSize, sal_uInt16 nBits, const BitmapP
mnBits = nBits;
mnWidth = rSize.Width();
mnHeight = rSize.Height();
+
+ // Limit size to what GL allows, so later glTexImage2D() won't fail.
+ GLint nMaxTextureSize;
+ glGetIntegerv(GL_MAX_TEXTURE_SIZE, &nMaxTextureSize);
+ if (mnWidth > nMaxTextureSize)
+ mnWidth = nMaxTextureSize;
+ if (mnHeight > nMaxTextureSize)
+ mnHeight = nMaxTextureSize;
+
return false;
}