summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-07-31 16:46:47 +0900
committerTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-08-03 09:23:31 +0900
commitf73e1f50240208257964e28e0e65a56e323d86da (patch)
tree30fabc75fb5ee29bda1dc7b18971febfe89bf2c2 /vcl
parentf82d57830918dc1023c9b7e30c75b9da2608b35c (diff)
opengl: support reading 8bit texture (fixes icon corruption)
Change-Id: Iba3fd58374a550f3411b02f029f12f4509fb6048
Diffstat (limited to 'vcl')
-rw-r--r--vcl/opengl/salbmp.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx
index 405428e7425c..6b6f7bc09ed2 100644
--- a/vcl/opengl/salbmp.cxx
+++ b/vcl/opengl/salbmp.cxx
@@ -368,7 +368,7 @@ GLuint OpenGLSalBitmap::CreateTexture()
else
{
// convert to 32 bits RGBA using palette
- pData = new sal_uInt8[ mnBufHeight * (mnBufWidth << 2) ];
+ pData = new sal_uInt8[mnBufHeight * mnBufWidth * 4];
bAllocated = true;
nFormat = GL_RGBA;
nType = GL_UNSIGNED_BYTE;
@@ -424,13 +424,16 @@ bool OpenGLSalBitmap::ReadTexture()
if( pData == NULL )
return false;
- if( mnBits == 16 || mnBits == 24 || mnBits == 32 )
+ if (mnBits == 8 || mnBits == 16 || mnBits == 24 || mnBits == 32)
{
// no conversion needed for truecolor
pData = maUserBuffer.get();
switch( mnBits )
{
+ case 8: nFormat = GL_LUMINANCE;
+ nType = GL_UNSIGNED_BYTE;
+ break;
case 16: nFormat = GL_RGB;
nType = GL_UNSIGNED_SHORT_5_6_5;
break;