include/vcl/opengl/OpenGLHelper.hxx | 5 +++++ vcl/inc/unx/pixmap.hxx | 1 + vcl/opengl/gdiimpl.cxx | 2 +- vcl/opengl/salbmp.cxx | 7 ++++++- vcl/quartz/salbmp.cxx | 4 ++++ vcl/source/opengl/OpenGLHelper.cxx | 17 +++++++++++++++-- vcl/unx/generic/gdi/gdiimpl.cxx | 4 ++-- vcl/unx/generic/gdi/gdiimpl.hxx | 2 +- vcl/unx/generic/gdi/pixmap.cxx | 7 ++++++- vcl/unx/generic/gdi/salbmp.cxx | 5 +---- vcl/unx/generic/gdi/salgdi.cxx | 6 +----- vcl/unx/generic/gdi/salgdi3.cxx | 2 -- vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx | 4 ++-- vcl/win/source/gdi/salgdi.cxx | 4 +--- vcl/workben/icontest.cxx | 1 - vcl/workben/outdevgrind.cxx | 9 +++++---- 16 files changed, 51 insertions(+), 29 deletions(-)
New commits: commit 421577a1cc1bda93bb372d4449239f321eb4959f Author: Caolán McNamara <caol...@redhat.com> Date: Mon Nov 10 20:32:49 2014 +0000 only call XFreePixmap on pixmaps created via XCreatePixmap not on those belonging to gdk shoe-horned in via mpPixmap = GDK_PIXMAP_XID( mpGdkPixmap ); in GdkX11Pixmap::GdkX11Pixmap This stops file->new->presentation crashing on second invocation Change-Id: Iec673497f900b0ddabd439369b9ffe554800d425 diff --git a/vcl/inc/unx/pixmap.hxx b/vcl/inc/unx/pixmap.hxx index 40bc11f..b65170f 100644 --- a/vcl/inc/unx/pixmap.hxx +++ b/vcl/inc/unx/pixmap.hxx @@ -36,6 +36,7 @@ protected: Display* mpDisplay; SalX11Screen mnScreen; Pixmap mpPixmap; + bool mbDeletePixmap; int mnWidth; int mnHeight; int mnDepth; diff --git a/vcl/unx/generic/gdi/pixmap.cxx b/vcl/unx/generic/gdi/pixmap.cxx index c30b9af..0440c46 100644 --- a/vcl/unx/generic/gdi/pixmap.cxx +++ b/vcl/unx/generic/gdi/pixmap.cxx @@ -13,6 +13,7 @@ X11Pixmap::X11Pixmap() : mpDisplay( NULL ) , mnScreen( 0 ) , mpPixmap( 0 ) +, mbDeletePixmap( false ) , mnWidth( -1 ) , mnHeight( -1 ) , mnDepth( 0 ) @@ -22,6 +23,7 @@ X11Pixmap::X11Pixmap() X11Pixmap::X11Pixmap( Display* pDisplay, SalX11Screen nScreen, int nWidth, int nHeight, int nDepth ) : mpDisplay( pDisplay ) , mnScreen( nScreen ) +, mbDeletePixmap( true ) , mnWidth( nWidth ) , mnHeight( nHeight ) , mnDepth( nDepth ) @@ -33,17 +35,19 @@ X11Pixmap::X11Pixmap( Display* pDisplay, SalX11Screen nScreen, int nWidth, int n X11Pixmap::X11Pixmap( X11Pixmap& rOther ) : mpDisplay( rOther.mpDisplay ) , mnScreen( rOther.mnScreen ) +, mbDeletePixmap( rOther.mbDeletePixmap ) , mnWidth( rOther.mnWidth ) , mnHeight( rOther.mnHeight ) , mnDepth( rOther.mnDepth ) { mpPixmap = rOther.mpPixmap; rOther.mpPixmap = 0; + rOther.mbDeletePixmap = false; } X11Pixmap::~X11Pixmap() { - if( mpPixmap ) + if (mbDeletePixmap && mpPixmap) XFreePixmap( mpDisplay, mpPixmap ); } diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx index b8db643..0cf68fd 100644 --- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx @@ -290,7 +290,7 @@ GdkX11Pixmap::GdkX11Pixmap( int nWidth, int nHeight, int nDepth ) } GdkX11Pixmap::GdkX11Pixmap( X11Pixmap& rOther, GdkWindow *pWindow ) -: X11Pixmap( rOther ) + : X11Pixmap(rOther) { GdkColormap* pColormap; commit 400f31f4965d9d5fb5bb0b17310cc20a6b173888 Author: Michael Meeks <michael.me...@collabora.com> Date: Mon Nov 10 16:02:31 2014 +0000 vcl: cleanup the opengl selection API. Change-Id: Icebf3c7d2911b27e29d2259b780a04048b293b3c diff --git a/include/vcl/opengl/OpenGLHelper.hxx b/include/vcl/opengl/OpenGLHelper.hxx index d49f579..ee5a9f8 100644 --- a/include/vcl/opengl/OpenGLHelper.hxx +++ b/include/vcl/opengl/OpenGLHelper.hxx @@ -58,6 +58,11 @@ public: */ static bool supportsVCLOpenGL(); + /** + * Returns true if VCL has OpenGL rendering enabled + */ + static bool isVCLOpenGLEnabled(); + #if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID static bool GetVisualInfo(Display* pDisplay, int nScreen, XVisualInfo& rVI); static GLXFBConfig GetPixmapFBConfig( Display* pDisplay, bool& bInverted ); diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index 5823b80..d9f445d 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -18,6 +18,7 @@ #include <boost/scoped_array.hpp> #include <vcl/pngwrite.hxx> #include <vcl/graph.hxx> +#include <officecfg/Office/Common.hxx> #include <vector> @@ -360,8 +361,20 @@ void OpenGLHelper::checkGLError(const char* pFile, size_t nLine) bool OpenGLHelper::supportsVCLOpenGL() { - static bool bDisableGL = !getenv("SAL_DISABLEGL"); - return bDisableGL; + static bool bDisableGL = !!getenv("SAL_DISABLEGL"); + + if (bDisableGL) + return false; + else + return true; +} + +bool OpenGLHelper::isVCLOpenGLEnabled() +{ + if (!supportsVCLOpenGL()) + return false; + bool bEnable = officecfg::Office::Common::VCL::UseOpenGL::get(); + return bEnable; } #if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID diff --git a/vcl/unx/generic/gdi/salbmp.cxx b/vcl/unx/generic/gdi/salbmp.cxx index 6b2042c..f36795a 100644 --- a/vcl/unx/generic/gdi/salbmp.cxx +++ b/vcl/unx/generic/gdi/salbmp.cxx @@ -45,7 +45,6 @@ #include <opengl/salbmp.hxx> #include <vcl/opengl/OpenGLHelper.hxx> -#include <officecfg/Office/Common.hxx> #if defined HAVE_VALGRIND_HEADERS #include <valgrind/memcheck.h> @@ -57,9 +56,7 @@ SalBitmap* X11SalInstance::CreateSalBitmap() { - static bool bOpenGLPossible = OpenGLHelper::supportsVCLOpenGL(); - bool bUseOpenGL = bOpenGLPossible ? officecfg::Office::Common::VCL::UseOpenGL::get() : false; - if (bUseOpenGL) + if (OpenGLHelper::isVCLOpenGLEnabled()) return new OpenGLSalBitmap(); else return new X11SalBitmap(); diff --git a/vcl/unx/generic/gdi/salgdi.cxx b/vcl/unx/generic/gdi/salgdi.cxx index 47b20bc..9609ec8 100644 --- a/vcl/unx/generic/gdi/salgdi.cxx +++ b/vcl/unx/generic/gdi/salgdi.cxx @@ -62,8 +62,6 @@ #include "generic/printergfx.hxx" #include "xrender_peer.hxx" -#include <officecfg/Office/Common.hxx> - #include <vcl/opengl/OpenGLHelper.hxx> X11SalGraphics::X11SalGraphics(): @@ -84,9 +82,7 @@ X11SalGraphics::X11SalGraphics(): bPrinter_(false), bVirDev_(false) { - static bool bOpenGLPossible = OpenGLHelper::supportsVCLOpenGL(); - bool bUseOpenGL = bOpenGLPossible ? officecfg::Office::Common::VCL::UseOpenGL::get() : false; - if (bUseOpenGL) + if (OpenGLHelper::isVCLOpenGLEnabled()) { mpImpl.reset(new X11OpenGLSalGraphicsImpl(*this)); mpTextRenderImpl.reset((new OpenGLX11CairoTextRender(false, *this))); diff --git a/vcl/win/source/gdi/salgdi.cxx b/vcl/win/source/gdi/salgdi.cxx index 4e3b76f..549a02f 100644 --- a/vcl/win/source/gdi/salgdi.cxx +++ b/vcl/win/source/gdi/salgdi.cxx @@ -589,9 +589,7 @@ WinSalGraphics::WinSalGraphics(WinSalGraphics::Type eType, bool bScreen, HWND hW mbFontKernInit(false), mnPenWidth(GSL_PEN_WIDTH) { - static bool bOpenGLPossible = OpenGLHelper::supportsVCLOpenGL(); - bool bUseOpenGL = bOpenGLPossible && mbWindow ? officecfg::Office::Common::VCL::UseOpenGL::get() : false; - if (bUseOpenGL) + if (OpenGLHelper::isVCLOpenGLEnabled()) mpImpl.reset(new WinOpenGLSalGraphicsImpl(*this)); else mpImpl.reset(new WinSalGraphicsImpl(*this)); commit c026a2c7df6d9b174f66bfa42e4046a4bb0271af Author: Caolán McNamara <caol...@redhat.com> Date: Mon Nov 10 15:58:03 2014 +0000 mpPixmap uninitialized in one ctor Change-Id: Iffa82b96610dd1fe5900ca796af413a116d2dd28 diff --git a/vcl/unx/generic/gdi/pixmap.cxx b/vcl/unx/generic/gdi/pixmap.cxx index beb5589..c30b9af 100644 --- a/vcl/unx/generic/gdi/pixmap.cxx +++ b/vcl/unx/generic/gdi/pixmap.cxx @@ -12,6 +12,7 @@ X11Pixmap::X11Pixmap() : mpDisplay( NULL ) , mnScreen( 0 ) +, mpPixmap( 0 ) , mnWidth( -1 ) , mnHeight( -1 ) , mnDepth( 0 ) commit 4e3b9dc9c06bfcf2a8dee1693f20763e5f78c3bd Author: Michael Stahl <mst...@redhat.com> Date: Mon Nov 10 14:15:14 2014 +0100 vcl: the docs say gdk_window_get_screen was added in GTK+ 2.24 Change-Id: Ib9b108c034181c0f94cbf86634447ba2d4afbaa5 diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx index 50cb193..b8db643 100644 --- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx @@ -294,7 +294,7 @@ GdkX11Pixmap::GdkX11Pixmap( X11Pixmap& rOther, GdkWindow *pWindow ) { GdkColormap* pColormap; -#if GTK_CHECK_VERSION(2,10,0) +#if GTK_CHECK_VERSION(2,24,0) GdkScreen *pScreen = gdk_window_get_screen( pWindow ); mpGdkPixmap = gdk_pixmap_foreign_new_for_screen( pScreen, mpPixmap, mnWidth, mnHeight, commit 59ea52db3e1911ec1d7e18036c0f444609751834 Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Nov 10 09:41:24 2014 +0100 loplugin:staticcall Change-Id: I33927305351b6e84721c11e3a1814266b41db8da diff --git a/vcl/unx/generic/gdi/gdiimpl.cxx b/vcl/unx/generic/gdi/gdiimpl.cxx index 0f210b3..4adea62 100644 --- a/vcl/unx/generic/gdi/gdiimpl.cxx +++ b/vcl/unx/generic/gdi/gdiimpl.cxx @@ -178,7 +178,7 @@ X11Pixmap* X11SalGraphicsImpl::GetPixmapFromScreen( const Rectangle& rRect ) } // Copy the background of the screen into a composite pixmap - mrParent.CopyScreenArea( mrParent.GetXDisplay(), + X11SalGraphics::CopyScreenArea( mrParent.GetXDisplay(), mrParent.GetDrawable(), mrParent.GetScreenNumber(), mrParent.GetVisual().GetDepth(), pPixmap->GetDrawable(), pPixmap->GetScreen(), @@ -206,7 +206,7 @@ bool X11SalGraphicsImpl::RenderPixmapToScreen( X11Pixmap* pPixmap, int nX, int n if( !pPixmap ) return false; - mrParent.CopyScreenArea( mrParent.GetXDisplay(), + X11SalGraphics::CopyScreenArea( mrParent.GetXDisplay(), pPixmap->GetDrawable(), pPixmap->GetScreen(), pPixmap->GetDepth(), mrParent.GetDrawable(), mrParent.m_nXScreen, commit d5b048e3599289c1846ffc1a312ac8dc9cefff91 Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Nov 10 09:39:46 2014 +0100 loplugin:unreffun Change-Id: Ia35c1b529d51882b48779d8e13afbe17ae66e937 diff --git a/vcl/unx/generic/gdi/salgdi3.cxx b/vcl/unx/generic/gdi/salgdi3.cxx index 3f47712..1809923 100644 --- a/vcl/unx/generic/gdi/salgdi3.cxx +++ b/vcl/unx/generic/gdi/salgdi3.cxx @@ -90,8 +90,6 @@ X11SalGraphics::GetFontGC() return pFontGC_; } -ImplFontOptions* GetFCFontOptions( const ImplFontAttributes& rFontAttributes, int nSize); - void X11SalGraphics::DrawServerFontLayout( const ServerFontLayout& rLayout ) { mpTextRenderImpl->DrawServerFontLayout(rLayout); commit 101d8b90a0a0c2c35643c3e9979c4a0b2da6c1de Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Nov 10 09:38:39 2014 +0100 -Werror,-Wheader-guard Change-Id: I692d2011902f46d2ca48b4d1d0a2516026e5cae3 diff --git a/vcl/unx/generic/gdi/gdiimpl.hxx b/vcl/unx/generic/gdi/gdiimpl.hxx index e6bfa86..5b0062c 100644 --- a/vcl/unx/generic/gdi/gdiimpl.hxx +++ b/vcl/unx/generic/gdi/gdiimpl.hxx @@ -17,7 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCULDED_VCL_GENERIC_GDI_GDIIMPL_HXX +#ifndef INCLUDED_VCL_GENERIC_GDI_GDIIMPL_HXX #define INCLUDED_VCL_GENERIC_GDI_GDIIMPL_HXX #include <prex.h> commit 6c6402835b59d48b169265e0fccb5e9ef768328e Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Nov 10 09:37:10 2014 +0100 loplugin:unreffun Change-Id: I230479415a4a822dda22e1795af56572a93cb802 diff --git a/vcl/workben/icontest.cxx b/vcl/workben/icontest.cxx index 5c73b92..5dfea6c 100644 --- a/vcl/workben/icontest.cxx +++ b/vcl/workben/icontest.cxx @@ -147,7 +147,6 @@ private: int nRet; void DoItWithVcl(const OUString& sImageFile); - void DoItWithOpenGL(const OUString& sImageFile); }; void IconTestApp::Init() commit 50bedbbbe30bdad6e77bb3308ee135574c1a332e Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Nov 10 09:36:13 2014 +0100 loplugin:saloverride Change-Id: Id7de67480c6f8a31c7b7d6e560e6724fd09d8957 diff --git a/vcl/workben/outdevgrind.cxx b/vcl/workben/outdevgrind.cxx index f857afe..cbcd1c5 100644 --- a/vcl/workben/outdevgrind.cxx +++ b/vcl/workben/outdevgrind.cxx @@ -57,8 +57,8 @@ namespace class GrindApp : public Application { public: - virtual int Main(); - virtual sal_uInt16 Exception( sal_uInt16 nError ); + virtual int Main() SAL_OVERRIDE; + virtual sal_uInt16 Exception( sal_uInt16 nError ) SAL_OVERRIDE; }; class TestWindow : public Dialog @@ -73,7 +73,7 @@ class TestWindow : public Dialog } virtual ~TestWindow() {} - virtual void Paint( const Rectangle& rRect ); + virtual void Paint( const Rectangle& rRect ) SAL_OVERRIDE; }; typedef boost::function1<void, OutputDevice*> functor_type; commit 54b54778e8f193ae49c827b4e21f53d5d1119793 Author: Tor Lillqvist <t...@collabora.com> Date: Mon Nov 10 09:37:19 2014 +0200 WaE: unused variable 'aString' Change-Id: Ie548ad26b7bb2a8ced4e821296b44586aad4026a diff --git a/vcl/workben/outdevgrind.cxx b/vcl/workben/outdevgrind.cxx index 66763e0..f857afe 100644 --- a/vcl/workben/outdevgrind.cxx +++ b/vcl/workben/outdevgrind.cxx @@ -107,10 +107,11 @@ void setupMethodStubs( functor_vector_type& res ) aPoly3.Rotate( aPoly3.GetBoundRect().Center(), 900 ); - const OUString aString("This is a test"); const LineInfo aLineInfo(LINE_SOLID,5); #ifdef FIXME_VDEV + const OUString aString("This is a test"); + // unfortunately, VDevs have inaccessible copy constructors static VirtualDevice aVDev; static VirtualDevice aVDevBW(1); commit be442e7d8a41703a5365d68abdc06789a114213c Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Mon Nov 10 08:17:51 2014 +0100 put these classes into an anonymous namespace Change-Id: I29a30fcc8adab34fbe05a927d438c4e34d5c517b diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx index d840c33..5a93aaa 100644 --- a/vcl/opengl/salbmp.cxx +++ b/vcl/opengl/salbmp.cxx @@ -220,6 +220,8 @@ bool OpenGLSalBitmap::AllocateUserData() return maUserBuffer.get() != 0; } +namespace { + class ImplPixelFormat { protected: @@ -311,6 +313,8 @@ ImplPixelFormat* ImplPixelFormat::GetFormat( sal_uInt16 nBits, const BitmapPalet return 0; } +} + Size OpenGLSalBitmap::GetSize() const { std::deque< OpenGLSalBitmapOp* >::const_iterator it = maPendingOps.begin(); diff --git a/vcl/quartz/salbmp.cxx b/vcl/quartz/salbmp.cxx index c4cf2b0..0e64aa7 100644 --- a/vcl/quartz/salbmp.cxx +++ b/vcl/quartz/salbmp.cxx @@ -330,6 +330,8 @@ bool QuartzSalBitmap::AllocateUserData() return maUserBuffer.get() != 0; } +namespace { + class ImplPixelFormat { protected: @@ -536,6 +538,8 @@ ImplPixelFormat* ImplPixelFormat::GetFormat( sal_uInt16 nBits, const BitmapPalet return 0; } +} + void QuartzSalBitmap::ConvertBitmapData( sal_uInt32 nWidth, sal_uInt32 nHeight, sal_uInt16 nDestBits, sal_uInt32 nDestBytesPerRow, const BitmapPalette& rDestPalette, sal_uInt8* pDestData, sal_uInt16 nSrcBits, sal_uInt32 nSrcBytesPerRow, const BitmapPalette& rSrcPalette, sal_uInt8* pSrcData ) commit ef3a757055780becca460f391fd1c88db7d0848d Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Nov 10 08:16:38 2014 +0100 WaE: [-Wsometimes-uninitialized] Change-Id: Ie51a67474631ecfb0b223bd2f5a63ae8bf363e42 diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx index 97dca8b..d840c33 100644 --- a/vcl/opengl/salbmp.cxx +++ b/vcl/opengl/salbmp.cxx @@ -324,7 +324,8 @@ Size OpenGLSalBitmap::GetSize() const GLuint OpenGLSalBitmap::CreateTexture() { - GLenum nFormat, nType; + GLenum nFormat = GL_RGBA; + GLenum nType = GL_UNSIGNED_BYTE; sal_uInt8* pData( NULL ); bool bAllocated( false ); commit 1a617345569cb367419fe27e66de0e12d86917d5 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Nov 10 08:13:31 2014 +0100 WaE implicit conversion of NULL constant to 'bool' [-Wnull-conversion] Change-Id: I8f208d6c87275aa4a169c7c6ed219200617c5669 diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx index 8c06769..85252ef 100644 --- a/vcl/opengl/gdiimpl.cxx +++ b/vcl/opengl/gdiimpl.cxx @@ -804,7 +804,7 @@ bool OpenGLSalGraphicsImpl::drawPolyPolygonBezier( const SalPoint* const* /*pPtAry*/, const sal_uInt8* const* /*pFlgAry*/ ) { - return NULL; + return false; } // CopyArea --> No RasterOp, but ClipRegion
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits