diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-07-31 16:46:47 +0900 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-08-03 09:23:31 +0900 |
commit | f73e1f50240208257964e28e0e65a56e323d86da (patch) | |
tree | 30fabc75fb5ee29bda1dc7b18971febfe89bf2c2 /vcl | |
parent | f82d57830918dc1023c9b7e30c75b9da2608b35c (diff) |
opengl: support reading 8bit texture (fixes icon corruption)
Change-Id: Iba3fd58374a550f3411b02f029f12f4509fb6048
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/opengl/salbmp.cxx | 7 |
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; |