diff options
author | Jan Holesovsky <kendy@collabora.com> | 2014-11-11 21:19:02 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2014-11-11 21:46:45 +0100 |
commit | d9fbaf248ea907428c3a5d0422d0c9a9ce50b907 (patch) | |
tree | 4130c203760745597856af352ebd9ad92ff6cc2f | |
parent | a237e0838196774cceeffe984d614198dbabd21e (diff) |
windows opengl: Instantiate OpenGLSalBitmap even on Windows.
Change-Id: I2229141cc12ad7bc9fccfd6e2c7fec44ac4f6284
-rw-r--r-- | vcl/opengl/gdiimpl.cxx | 3 | ||||
-rw-r--r-- | vcl/opengl/salbmp.cxx | 11 | ||||
-rw-r--r-- | vcl/win/source/app/salinst.cxx | 9 |
3 files changed, 18 insertions, 5 deletions
diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx index 8a2f89bb9432..2cf980641a32 100644 --- a/vcl/opengl/gdiimpl.cxx +++ b/vcl/opengl/gdiimpl.cxx @@ -865,6 +865,9 @@ void OpenGLSalGraphicsImpl::copyBits( const SalTwoRect& rPosAry, SalGraphics* /* void OpenGLSalGraphicsImpl::drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSalBitmap ) { + // check that carefully only in the debug mode + assert(dynamic_cast<const OpenGLSalBitmap*>(&rSalBitmap)); + const OpenGLSalBitmap& rBitmap = static_cast<const OpenGLSalBitmap&>(rSalBitmap); GLuint nTexture = rBitmap.GetTexture( maContext ); const Size aSize = rSalBitmap.GetSize(); diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx index 5a93aaa8b094..e4f920543e26 100644 --- a/vcl/opengl/salbmp.cxx +++ b/vcl/opengl/salbmp.cxx @@ -34,6 +34,7 @@ static bool isValidBitCount( sal_uInt16 nBitCount ) OpenGLSalBitmap::OpenGLSalBitmap() : mpContext(NULL) +, mpTexture(NULL) , mbDirtyTexture(true) , mnBits(0) , mnBytesPerRow(0) @@ -57,7 +58,7 @@ bool OpenGLSalBitmap::Create( OpenGLContext& rContext, OpenGLTextureSharedPtr pT static const BitmapPalette aEmptyPalette; Destroy(); - SAL_INFO( "vcl.opengl", "OpenGLSalBitmap::Create from FBO" ); + SAL_INFO( "vcl.opengl", "OpenGLSalBitmap::Create from FBO: [" << nX << ", " << nY << "] " << nWidth << "x" << nHeight ); mpContext = &rContext; mnWidth = nWidth; @@ -83,7 +84,7 @@ bool OpenGLSalBitmap::Create( OpenGLContext& rContext, OpenGLTextureSharedPtr pT bool OpenGLSalBitmap::Create( const Size& rSize, sal_uInt16 nBits, const BitmapPalette& rBitmapPalette ) { Destroy(); - SAL_INFO( "vcl.opengl", "OpenGLSalBitmap::Create with size" ); + SAL_INFO( "vcl.opengl", "OpenGLSalBitmap::Create with size: " << rSize ); if( !isValidBitCount( nBits ) ) return false; @@ -106,9 +107,12 @@ bool OpenGLSalBitmap::Create( const SalBitmap& rSalBmp, SalGraphics* pGraphics ) bool OpenGLSalBitmap::Create( const SalBitmap& rSalBmp, sal_uInt16 nNewBitCount ) { + // check that carefully only in the debug mode + assert(dynamic_cast<const OpenGLSalBitmap*>(&rSalBmp)); + const OpenGLSalBitmap& rSourceBitmap = static_cast<const OpenGLSalBitmap&>(rSalBmp); - SAL_INFO( "vcl.opengl", "OpenGLSalBitmap::Create from BMP " << rSourceBitmap.mnHeight ); + SAL_INFO( "vcl.opengl", "OpenGLSalBitmap::Create from BMP: " << rSourceBitmap.mnWidth << "x" << rSourceBitmap.mnHeight ); if( isValidBitCount( nNewBitCount ) ) { @@ -328,6 +332,7 @@ Size OpenGLSalBitmap::GetSize() const GLuint OpenGLSalBitmap::CreateTexture() { + SAL_INFO( "vcl.opengl", "::CreateTexture" ); GLenum nFormat = GL_RGBA; GLenum nType = GL_UNSIGNED_BYTE; sal_uInt8* pData( NULL ); diff --git a/vcl/win/source/app/salinst.cxx b/vcl/win/source/app/salinst.cxx index b1d33e498792..a601ff543539 100644 --- a/vcl/win/source/app/salinst.cxx +++ b/vcl/win/source/app/salinst.cxx @@ -26,9 +26,11 @@ #include <tools/solarmutex.hxx> -#include <vcl/timer.hxx> #include <vcl/apptypes.hxx> +#include <vcl/opengl/OpenGLHelper.hxx> +#include <vcl/timer.hxx> +#include <opengl/salbmp.hxx> #include <win/wincomp.hxx> #include <win/salids.hrc> #include <win/saldata.hxx> @@ -1007,7 +1009,10 @@ SalTimer* WinSalInstance::CreateSalTimer() SalBitmap* WinSalInstance::CreateSalBitmap() { - return new WinSalBitmap(); + if (OpenGLHelper::isVCLOpenGLEnabled()) + return new OpenGLSalBitmap(); + else + return new WinSalBitmap(); } class WinImeStatus : public SalI18NImeStatus |