chart2/Library_chartcore.mk | 2 ++ chart2/source/view/charttypes/3DBarChart.cxx | 9 ++++++--- chart2/source/view/inc/3DBarChart.hxx | 9 ++++++++- chart2/source/view/inc/3DChartObjects.hxx | 17 +++++++++++++++++ chart2/source/view/main/3DChartObjects.cxx | 14 ++++++++++++++ include/vcl/OpenGLContext.hxx | 4 ++-- vcl/source/opengl/OpenGLContext.cxx | 13 +++++++++++++ 7 files changed, 62 insertions(+), 6 deletions(-)
New commits: commit 0e9cbea7bdbbd2e66c72cd337d2c9919989d4b84 Author: Markus Mohrhard <[email protected]> Date: Tue Apr 8 01:17:16 2014 +0200 improve the code for temporary OpenGl context Change-Id: Ia66bf54539e67066a56bb50fb606e50e581bee73 diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk index 55aa610..e4b0051 100644 --- a/chart2/Library_chartcore.mk +++ b/chart2/Library_chartcore.mk @@ -29,6 +29,7 @@ $(eval $(call gb_Library_use_externals,chartcore,\ boost_headers \ mdds_headers \ glm_headers \ + glew \ )) $(eval $(call gb_Library_use_custom_headers,chartcore,\ @@ -56,6 +57,7 @@ $(eval $(call gb_Library_use_libraries,chartcore,\ ucbhelper \ utl \ vcl \ + vclopengl \ $(gb_UWINAPI) \ )) diff --git a/chart2/source/view/charttypes/3DBarChart.cxx b/chart2/source/view/charttypes/3DBarChart.cxx index 79c02a6..3a13059 100644 --- a/chart2/source/view/charttypes/3DBarChart.cxx +++ b/chart2/source/view/charttypes/3DBarChart.cxx @@ -9,15 +9,16 @@ #include "3DBarChart.hxx" -#include "3DChartObjects.hxx" - #include <glm/glm.hpp> #include <glm/gtx/transform.hpp> +#include "3DChartObjects.hxx" + namespace chart { Bar3DChart::Bar3DChart(const std::vector<VDataSeries*>& rDataSeries): - maDataSeries(rDataSeries) + maDataSeries(rDataSeries), + mxContext(new opengl3D::temporary::TemporaryContext()) { } @@ -57,12 +58,13 @@ void Bar3DChart::create3DShapes() void Bar3DChart::render() { - maContext.init(); + mxContext->init(); for(boost::ptr_vector<opengl3D::Renderable3DObject>::iterator itr = maShapes.begin(), itrEnd = maShapes.end(); itr != itrEnd; ++itr) { itr->render(); } + mxContext->render(); } } diff --git a/chart2/source/view/inc/3DBarChart.hxx b/chart2/source/view/inc/3DBarChart.hxx index 0cc5831..2f10ce2 100644 --- a/chart2/source/view/inc/3DBarChart.hxx +++ b/chart2/source/view/inc/3DBarChart.hxx @@ -19,7 +19,11 @@ namespace opengl3D { class Renderable3DObject; -} +namespace temporary { + +class TemporaryContext; + +} } class Bar3DChart { @@ -36,7 +40,7 @@ private: std::vector<VDataSeries*> maDataSeries; boost::ptr_vector<opengl3D::Renderable3DObject> maShapes; - OpenGLContext maContext; + boost::scoped_ptr<opengl3D::temporary::TemporaryContext> mxContext; }; } diff --git a/chart2/source/view/inc/3DChartObjects.hxx b/chart2/source/view/inc/3DChartObjects.hxx index ec56ad8..f7eed23 100644 --- a/chart2/source/view/inc/3DChartObjects.hxx +++ b/chart2/source/view/inc/3DChartObjects.hxx @@ -12,6 +12,8 @@ #include <tools/color.hxx> #include <vcl/bitmapex.hxx> +#include <vcl/OpenGLContext.hxx> + namespace chart { namespace opengl3D { @@ -64,6 +66,21 @@ private: Color maLineColor; // RGBA line color }; +namespace temporary { + +class TemporaryContext +{ +public: + + void init(); + void render(); + +private: + OpenGLContext maContext; +}; + +} + } } diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx index 0a0696a..3c5a5b8 100644 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -18,6 +18,20 @@ Bar::Bar(const glm::mat4& rPosition): { } +namespace temporary { + +void TemporaryContext::init() +{ + maContext.init(); +} + +void TemporaryContext::render() +{ + +} + +} + } } diff --git a/include/vcl/OpenGLContext.hxx b/include/vcl/OpenGLContext.hxx index e84e8fc..8c7eb55 100644 --- a/include/vcl/OpenGLContext.hxx +++ b/include/vcl/OpenGLContext.hxx @@ -10,6 +10,8 @@ #ifndef VCL_OPENGL_CONTEXT_HXX #define VCL_OPENGL_CONTEXT_HXX +#include <GL/glew.h> + #if defined( MACOSX ) #elif defined( UNX ) # include <prex.h> @@ -21,8 +23,6 @@ # include "postwin.h" #endif -#include <GL/glew.h> - #if defined( _WIN32 ) #include <GL/glext.h> #include <GL/wglext.h> diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index e3feb70..985018b 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -7,7 +7,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include <GL/glew.h> #include <vcl/OpenGLContext.hxx> #include <vcl/syschild.hxx> #include <vcl/sysdata.hxx> commit 3c6327950a6d2039af80f4ed3af84ccaae8facde Author: Markus Mohrhard <[email protected]> Date: Tue Apr 8 00:34:29 2014 +0200 call glewInit in vcl's OpenGLContext just once Change-Id: I9f9b50615e588e659c7fcdd016cf9ceb8407b974 diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index b9b9125..e3feb70 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -7,6 +7,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include <GL/glew.h> #include <vcl/OpenGLContext.hxx> #include <vcl/syschild.hxx> #include <vcl/sysdata.hxx> @@ -447,6 +448,19 @@ bool OpenGLContext::init( Window* pParent ) #endif + static bool bGlewInit = false; + if(!bGlewInit) + { + glewExperimental = GL_TRUE; + if (glewInit() != GLEW_OK) + { + SAL_WARN("vcl.opengl", "Failed to initialize GLEW"); + return false; + } + else + bGlewInit = true; + } + SAL_INFO("vcl.opengl", "OpenGLContext::init----end"); mbInitialized = true; return true; commit 9bfaa3c3bc14dbfabf3dbfe00426aa2abd416373 Author: Markus Mohrhard <[email protected]> Date: Tue Apr 8 00:30:23 2014 +0200 e temporarily a local OpenGL context Change-Id: I086d826456d77bf978c3877ed6da92850878ad97 diff --git a/chart2/source/view/charttypes/3DBarChart.cxx b/chart2/source/view/charttypes/3DBarChart.cxx index 2da54aa..79c02a6 100644 --- a/chart2/source/view/charttypes/3DBarChart.cxx +++ b/chart2/source/view/charttypes/3DBarChart.cxx @@ -57,6 +57,7 @@ void Bar3DChart::create3DShapes() void Bar3DChart::render() { + maContext.init(); for(boost::ptr_vector<opengl3D::Renderable3DObject>::iterator itr = maShapes.begin(), itrEnd = maShapes.end(); itr != itrEnd; ++itr) { diff --git a/chart2/source/view/inc/3DBarChart.hxx b/chart2/source/view/inc/3DBarChart.hxx index 6eeea5b..0cc5831 100644 --- a/chart2/source/view/inc/3DBarChart.hxx +++ b/chart2/source/view/inc/3DBarChart.hxx @@ -11,6 +11,8 @@ #include <boost/ptr_container/ptr_vector.hpp> #include "VDataSeries.hxx" +#include <vcl/OpenGLContext.hxx> + namespace chart { namespace opengl3D { @@ -34,6 +36,7 @@ private: std::vector<VDataSeries*> maDataSeries; boost::ptr_vector<opengl3D::Renderable3DObject> maShapes; + OpenGLContext maContext; }; } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
