cui/source/options/optgdlg.cxx                             |   84 +++++++++++++
 cui/source/options/optgdlg.hxx                             |    7 +
 officecfg/registry/schema/org/openoffice/Office/Common.xcs |    8 +
 vcl/source/opengl/OpenGLHelper.cxx                         |    2 
 4 files changed, 100 insertions(+), 1 deletion(-)

New commits:
commit 355e39508112695766f060e9b05c70625ee1b0a3
Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk>
Date:   Wed Dec 17 22:29:21 2014 +0100

    after resetting the values are not modified
    
    Change-Id: I0211c9c7dcc24ce40fe7c573f35ac13c02e742c1

diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index d70b4ec..55222bc9 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -136,6 +136,7 @@ void OpenGLCfg::reset()
 {
     mbUseOpenGL = officecfg::Office::Common::VCL::UseOpenGL::get();
     mbForceOpenGL = officecfg::Office::Common::VCL::ForceOpenGL::get();
+    mbModified = false;
 }
 
 OpenGLCfg::~OpenGLCfg()
commit 2a7571d00f182147311596541642b8abde7729d0
Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk>
Date:   Wed Dec 17 22:27:54 2014 +0100

    make use of the new ForceOpenGL config variable
    
    Change-Id: Ifdfcbd9d3d62d2a55e3e050d4723700f8436e57a

diff --git a/vcl/source/opengl/OpenGLHelper.cxx 
b/vcl/source/opengl/OpenGLHelper.cxx
index 3c08c03..7f4cf36 100644
--- a/vcl/source/opengl/OpenGLHelper.cxx
+++ b/vcl/source/opengl/OpenGLHelper.cxx
@@ -408,7 +408,7 @@ bool OpenGLHelper::isVCLOpenGLEnabled()
      *  * SAL_ENABLEGL overrides VCL_HIDE_WINDOWS and the configuration 
variable
      *  * the configuration variable is checked if no environment variable is 
set
      */
-    static bool bForceOpenGL = !!getenv("SAL_FORCEGL");
+    static bool bForceOpenGL = !!getenv("SAL_FORCEGL") || 
officecfg::Office::Common::VCL::ForceOpenGL::get();
     if (bForceOpenGL)
         return true;
 
commit 9a33547d1462dcb0f9aae885e4160a4f42eeb94d
Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk>
Date:   Wed Dec 17 22:25:45 2014 +0100

    implement the ui part for the OpenGL config variables
    
    Change-Id: I46e2de444d38f1f93eb68ffd50b7a283d05d1738

diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index ca5af8d..d70b4ec 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -69,6 +69,7 @@
 #include <unotools/searchopt.hxx>
 #include <sal/macros.h>
 #include <officecfg/Office/Common.hxx>
+#include <comphelper/configuration.hxx>
 
 #include <com/sun/star/configuration/theDefaultProvider.hpp>
 #include <com/sun/star/container/XNameAccess.hpp>
@@ -103,6 +104,81 @@ using namespace ::com::sun::star::container;
 using namespace ::com::sun::star::util;
 using namespace ::utl;
 
+namespace svt {
+
+class OpenGLCfg
+{
+private:
+    bool mbUseOpenGL;
+    bool mbForceOpenGL;
+    bool mbModified;
+
+public:
+    OpenGLCfg();
+    ~OpenGLCfg();
+
+    bool useOpenGL() const;
+    bool forceOpenGL() const;
+
+    void setUseOpenGL(bool bOpenGL);
+    void setForceOpenGL(bool bOpenGL);
+
+    void reset();
+};
+
+OpenGLCfg::OpenGLCfg():
+    mbModified(false)
+{
+    reset();
+}
+
+void OpenGLCfg::reset()
+{
+    mbUseOpenGL = officecfg::Office::Common::VCL::UseOpenGL::get();
+    mbForceOpenGL = officecfg::Office::Common::VCL::ForceOpenGL::get();
+}
+
+OpenGLCfg::~OpenGLCfg()
+{
+    if (mbModified)
+    {
+        boost::shared_ptr< comphelper::ConfigurationChanges > batch( 
comphelper::ConfigurationChanges::create() );
+        officecfg::Office::Common::VCL::UseOpenGL::set(mbUseOpenGL, batch);
+        officecfg::Office::Common::VCL::ForceOpenGL::set(mbForceOpenGL, batch);
+
+    }
+}
+
+bool OpenGLCfg::useOpenGL() const
+{
+    return mbUseOpenGL;
+}
+
+bool OpenGLCfg::forceOpenGL() const
+{
+    return mbForceOpenGL;
+}
+
+void OpenGLCfg::setUseOpenGL(bool bOpenGL)
+{
+    if (bOpenGL != mbUseOpenGL)
+    {
+        mbUseOpenGL = bOpenGL;
+        mbModified = true;
+    }
+}
+
+void OpenGLCfg::setForceOpenGL(bool bOpenGL)
+{
+    if (mbForceOpenGL != bOpenGL)
+    {
+        mbForceOpenGL = bOpenGL;
+        mbModified = true;
+    }
+}
+
+}
+
 // class OfaMiscTabPage --------------------------------------------------
 
 int OfaMiscTabPage::DeactivatePage( SfxItemSet* pSet_ )
@@ -557,6 +633,7 @@ OfaViewTabPage::OfaViewTabPage(vcl::Window* pParent, const 
SfxItemSet& rSet)
     , pAppearanceCfg(new SvtTabAppearanceCfg)
     , pCanvasSettings(new CanvasSettings)
     , mpDrawinglayerOpt(new SvtOptionsDrawinglayer)
+    , mpOpenGLConfig(new svt::OpenGLCfg)
 {
     get(m_pWindowSizeMF, "windowsize");
     get(m_pIconSizeLB, "iconsize");
@@ -785,6 +862,9 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
         }
     }
 
+    mpOpenGLConfig->setUseOpenGL(m_pUseOpenGL->IsChecked());
+    mpOpenGLConfig->setForceOpenGL(m_pForceOpenGL->IsChecked());
+
     // #i97672#
     if(m_pSelectionCB->IsEnabled())
     {
@@ -843,6 +923,7 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
 void OfaViewTabPage::Reset( const SfxItemSet* )
 {
     SvtMiscOptions aMiscOptions;
+    mpOpenGLConfig->reset();
 
     if( aMiscOptions.GetSymbolsSize() != SFX_SYMBOLS_SIZE_AUTO )
         nSizeLB_InitialSelection = ( aMiscOptions.AreCurrentSymbolsLarge() )? 
2 : 1;
@@ -912,6 +993,8 @@ void OfaViewTabPage::Reset( const SfxItemSet* )
 
         m_pUseAntiAliase->SaveValue();
     }
+    m_pUseOpenGL->Check(mpOpenGLConfig->useOpenGL());
+    m_pForceOpenGL->Check(mpOpenGLConfig->forceOpenGL());
 
     {
         // #i97672# Selection
diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx
index 2d102899..5652811 100644
--- a/cui/source/options/optgdlg.hxx
+++ b/cui/source/options/optgdlg.hxx
@@ -25,6 +25,8 @@
 #include <sfx2/tabdlg.hxx>
 #include <svx/langbox.hxx>
 
+#include <boost/scoped_ptr.hpp>
+
 // predeclarations
 class CanvasSettings;
 class SvtOptionsDrawinglayer;
@@ -32,6 +34,10 @@ namespace vcl {
 class IconThemeInfo;
 }
 
+namespace svt {
+    class OpenGLCfg;
+}
+
 // class OfaMiscTabPage --------------------------------------------------
 
 class OfaMiscTabPage : public SfxTabPage
@@ -113,6 +119,7 @@ private:
     SvtTabAppearanceCfg*    pAppearanceCfg;
     CanvasSettings*         pCanvasSettings;
     SvtOptionsDrawinglayer* mpDrawinglayerOpt;
+    boost::scoped_ptr<svt::OpenGLCfg> mpOpenGLConfig;
 
     std::vector<vcl::IconThemeInfo> mInstalledIconThemes;
 
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 41c2601..4b5c789 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -858,6 +858,14 @@
         </info>
         <value>false</value>
       </prop>
+      <prop oor:name="ForceOpenGL" oor:type="xs:boolean" oor:nillable="false">
+        <info>
+           <desc>Specifies if OpenGL rendering should be used in VCL backends
+               supporting it. This one forces the use of OpenGL even if the
+                blacklist would block the OpenGL driver.</desc>
+        </info>
+        <value>false</value>
+      </prop>
     </group>
     <group oor:name="InternalMSExport">
       <info>
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to