canvas/Library_canvasfactory.mk | 1 + canvas/source/cairo/cairo_canvas.cxx | 4 ++++ canvas/source/directx/dx_canvas.cxx | 4 ++++ canvas/source/factory/cf_service.cxx | 5 +++++ cui/source/dialogs/about.cxx | 4 ++-- cui/source/options/optgdlg.cxx | 6 +++++- include/vcl/opengl/OpenGLWrapper.hxx | 26 ++++++++++++++++++++++++++ vcl/source/opengl/OpenGLHelper.cxx | 6 ++++++ 8 files changed, 53 insertions(+), 3 deletions(-)
New commits: commit 055f76b8f1897b79cc5f153da55e38b95ca551a2 Author: Michael Meeks <[email protected]> Date: Thu Sep 3 00:30:28 2015 +0100 tdf#93870 - GL accel. via VCL canvas for presentations when GL enabled. Change-Id: Ia31a88cb3d9e6baa987b22f77f407a3f592031f1 Reviewed-on: https://gerrit.libreoffice.org/18285 Tested-by: Jenkins <[email protected]> Reviewed-by: Michael Meeks <[email protected]> Tested-by: Michael Meeks <[email protected]> Reviewed-by: Jan Holesovsky <[email protected]> diff --git a/canvas/Library_canvasfactory.mk b/canvas/Library_canvasfactory.mk index dec3175..d3992fc 100644 --- a/canvas/Library_canvasfactory.mk +++ b/canvas/Library_canvasfactory.mk @@ -29,6 +29,7 @@ $(eval $(call gb_Library_use_libraries,canvasfactory,\ cppu \ cppuhelper \ sal \ + vcl \ $(gb_UWINAPI) \ )) diff --git a/canvas/source/cairo/cairo_canvas.cxx b/canvas/source/cairo/cairo_canvas.cxx index 6b46438..589d585 100644 --- a/canvas/source/cairo/cairo_canvas.cxx +++ b/canvas/source/cairo/cairo_canvas.cxx @@ -31,6 +31,7 @@ #include <toolkit/helper/vclunohelper.hxx> #include <tools/diagnose_ex.h> #include <vcl/sysdata.hxx> +#include <vcl/opengl/OpenGLWrapper.hxx> #include <canvas/canvastools.hxx> @@ -54,6 +55,9 @@ namespace cairocanvas if( maArguments.getLength() == 0 ) return; + // tdf#93870 - force VCL canvas in OpenGL mode for now. + assert( !OpenGLWrapper::isVCLOpenGLEnabled() ); + /* maArguments: 0: ptr to creating instance (Window or VirtualDevice) 1: SystemEnvData as a streamed Any (or empty for VirtualDevice) diff --git a/canvas/source/directx/dx_canvas.cxx b/canvas/source/directx/dx_canvas.cxx index f857831..f9e6ee1 100644 --- a/canvas/source/directx/dx_canvas.cxx +++ b/canvas/source/directx/dx_canvas.cxx @@ -38,6 +38,7 @@ #include <toolkit/helper/vclunohelper.hxx> #include <tools/diagnose_ex.h> #include <vcl/sysdata.hxx> +#include <vcl/opengl/OpenGLWrapper.hxx> #include <canvas/canvastools.hxx> @@ -78,6 +79,9 @@ namespace dxcanvas if( maArguments.getLength() == 0 ) return; + // tdf#93870 - force VCL canvas in OpenGL mode for now. + assert( !OpenGLWrapper::isVCLOpenGLEnabled() ); + SAL_INFO("canvas.directx", "Canvas::initialize called" ); // At index 1, we expect a HWND handle here, containing a diff --git a/canvas/source/factory/cf_service.cxx b/canvas/source/factory/cf_service.cxx index 3a8130d..bc88538 100644 --- a/canvas/source/factory/cf_service.cxx +++ b/canvas/source/factory/cf_service.cxx @@ -39,6 +39,7 @@ #include <osl/mutex.hxx> #include <osl/process.h> #include <o3tl/functional.hxx> +#include <vcl/opengl/OpenGLWrapper.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -308,6 +309,10 @@ Reference<XInterface> CanvasFactory::lookupAndUse( m_bCacheHasForcedLastImpl, OUString("ForceSafeServiceImpl") ); + // tdf#93870 - force VCL canvas in OpenGL mode for now. + if( OpenGLWrapper::isVCLOpenGLEnabled() ) + bForceLastEntry = true; + // use anti-aliasing canvas, if config flag set (or not existing) bool bUseAAEntry(true); checkConfigFlag( bUseAAEntry, diff --git a/cui/source/dialogs/about.cxx b/cui/source/dialogs/about.cxx index 8f5caf6..7dec293 100644 --- a/cui/source/dialogs/about.cxx +++ b/cui/source/dialogs/about.cxx @@ -48,7 +48,7 @@ #include <rtl/ustrbuf.hxx> #include <vcl/bitmap.hxx> #include <officecfg/Office/Common.hxx> -#include <vcl/opengl/OpenGLHelper.hxx> +#include <vcl/opengl/OpenGLWrapper.hxx> using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; @@ -295,7 +295,7 @@ OUString AboutDialog::GetVersionString() sVersion += m_sBuildStr.replaceAll("$BUILDID", sBuildId); } - if (OpenGLHelper::isVCLOpenGLEnabled()) + if (OpenGLWrapper::isVCLOpenGLEnabled()) { sVersion += "-GL"; } diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index 1a29276..e869664e 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -89,6 +89,7 @@ #include <vcl/svapp.hxx> #include <vcl/settings.hxx> #include <vcl/IconThemeInfo.hxx> +#include <vcl/opengl/OpenGLWrapper.hxx> #include "optgdlg.hxx" #include <svx/ofaitem.hxx> @@ -522,7 +523,10 @@ CanvasSettings::CanvasSettings() : bool CanvasSettings::IsHardwareAccelerationAvailable() const { - if( !mbHWAccelChecked ) + if( OpenGLWrapper::isVCLOpenGLEnabled() ) + mbHWAccelAvailable = false; + + else if( !mbHWAccelChecked ) { mbHWAccelChecked = true; diff --git a/include/vcl/opengl/OpenGLWrapper.hxx b/include/vcl/opengl/OpenGLWrapper.hxx new file mode 100644 index 0000000..c2f44c0 --- /dev/null +++ b/include/vcl/opengl/OpenGLWrapper.hxx @@ -0,0 +1,26 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +// Fully wrapped methods that have no exotic GL / GLEW header deps. + +#ifndef INCLUDED_VCL_OPENGL_OPENGLWRAPPER_HXX +#define INCLUDED_VCL_OPENGL_OPENGLWRAPPER_HXX + +#include <vcl/dllapi.h> + +class VCL_DLLPUBLIC OpenGLWrapper +{ +public: + /** + * Returns true if VCL has OpenGL rendering enabled + */ + static bool isVCLOpenGLEnabled(); +}; + +#endif // INCLUDED_VCL_OPENGL_OPENGLWRAPPER_HXX diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index 62cb918..014a5ad 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -32,6 +32,7 @@ #include "opengl/zone.hxx" #include "opengl/watchdog.hxx" #include <osl/conditn.h> +#include <vcl/opengl/OpenGLWrapper.hxx> #include <vcl/opengl/OpenGLContext.hxx> #if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID @@ -677,6 +678,11 @@ bool OpenGLHelper::isVCLOpenGLEnabled() return bRet; } +bool OpenGLWrapper::isVCLOpenGLEnabled() +{ + return OpenGLHelper::isVCLOpenGLEnabled(); +} + void OpenGLHelper::debugMsgStream(const char *pArea, std::ostringstream const &pStream) { debugMsgPrint(pArea, "%s", pStream.str().c_str()); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
