[Libreoffice-commits] core.git: Branch 'feature/chart-3d-chart2' - 5 commits - chart2/source include/vcl vcl/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 29 +++-- chart2/source/view/inc/GL3DBarChart.hxx|3 +- include/vcl/openglwin.hxx |2 - vcl/source/window/openglwin.cxx|2 - 4 files changed, 27 insertions(+), 9 deletions(-) New commits: commit 667c3ea13d1afe8eb0fa9b9581383b3140229a0c Author: Markus Mohrhard markus.mohrh...@collabora.co.uk Date: Mon May 26 03:20:12 2014 +0200 react only to left mouse click Change-Id: Ia4c2c52b8803cd36d7ed32be559ba446589377e7 diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index ea589ac..3f330a8 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -306,11 +306,14 @@ public: } -void GL3DBarChart::clickedAt(const Point /*rPos*/) +void GL3DBarChart::clickedAt(const Point /*rPos*/, sal_uInt16 nButtons) { if(mbBlockUserInput) return; +if(nButtons != MOUSE_LEFT) +return; + mbBlockUserInput = true; sal_uInt32 nId = 5; /* diff --git a/chart2/source/view/inc/GL3DBarChart.hxx b/chart2/source/view/inc/GL3DBarChart.hxx index 377b18c..eb436db 100644 --- a/chart2/source/view/inc/GL3DBarChart.hxx +++ b/chart2/source/view/inc/GL3DBarChart.hxx @@ -50,7 +50,7 @@ public: virtual void update() SAL_OVERRIDE; -virtual void clickedAt(const Point rPos) SAL_OVERRIDE; +virtual void clickedAt(const Point rPos, sal_uInt16 nButtons) SAL_OVERRIDE; virtual void mouseDragMove(const Point rStartPos, const Point rEndPos, sal_uInt16 nButtons) SAL_OVERRIDE; virtual void scroll(long nDelta) SAL_OVERRIDE; virtual void contextDestroyed() SAL_OVERRIDE; diff --git a/include/vcl/openglwin.hxx b/include/vcl/openglwin.hxx index d2e86cc..85d1940 100644 --- a/include/vcl/openglwin.hxx +++ b/include/vcl/openglwin.hxx @@ -24,7 +24,7 @@ class VCLOPENGL_DLLPUBLIC IRenderer public: virtual ~IRenderer() {} virtual void update() = 0; -virtual void clickedAt(const Point rPos) = 0; +virtual void clickedAt(const Point rPos, sal_uInt16 nButtons) = 0; virtual void mouseDragMove(const Point rPosBegin, const Point rPosEnd, sal_uInt16 nButtons) = 0; virtual void scroll(long nDelta) = 0; diff --git a/vcl/source/window/openglwin.cxx b/vcl/source/window/openglwin.cxx index 455e455..1983376 100644 --- a/vcl/source/window/openglwin.cxx +++ b/vcl/source/window/openglwin.cxx @@ -68,7 +68,7 @@ void OpenGLWindow::MouseButtonUp( const MouseEvent rMEvt ) Color aColor = GetPixel(aPoint); SAL_WARN(vcl.opengl, aColor.GetColor()); if(mpRenderer) -mpRenderer-clickedAt(aPoint); +mpRenderer-clickedAt(aPoint, rMEvt.GetButtons()); } else { commit 4dc6f2d72a1c4faf05b42df0c5d441b2c00372ac Author: Markus Mohrhard markus.mohrh...@collabora.co.uk Date: Mon May 26 03:15:18 2014 +0200 remove unnecessary debug message Change-Id: I63e65bce671d1feab4ea93bdff906b597ce180c3 diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 03897df..ea589ac 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -347,13 +347,13 @@ void GL3DBarChart::clickedAt(const Point /*rPos*/) } -void GL3DBarChart::mouseDragMove(const Point rStartPos, const Point rEndPos, sal_uInt16 nButtons) +void GL3DBarChart::mouseDragMove(const Point , const Point , sal_uInt16 nButtons) { if(mbBlockUserInput) return; mbBlockUserInput = true; -SAL_WARN(chart2.opengl, Dragging: rStartPos to : rEndPos Buttons: nButtons); + if(nButtons == MOUSE_RIGHT) { mnCornerId = (mnCornerId + 1) % 4; commit 24a243f8207aba16412e6b0ea3a67e645d19c9fc Author: Markus Mohrhard markus.mohrh...@collabora.co.uk Date: Mon May 26 03:14:48 2014 +0200 improve screen text positioning Change-Id: Ia1f4ae40b8dbed2324c600f7ef68a33a5b04027b diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 73a41d8..03897df 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -343,7 +343,7 @@ void GL3DBarChart::clickedAt(const Point /*rPos*/) maShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, OUString(Value: ) + OUString::number(rBarInfo.mnVal), 0)); opengl3D::ScreenText* pScreenText = static_castopengl3D::ScreenText*(maShapes.back()); -pScreenText-setPosition(glm::vec2(-1.0f, 0.9f), glm::vec2(-0.6f, 0.75f)); +pScreenText-setPosition(glm::vec2(-0.9f, 0.9f), glm::vec2(-0.6f, 0.8f)); } commit 8d6776d00ea4313bb5a592db2ea31e7d50f6813e Author: Markus Mohrhard markus.mohrh...@collabora.co.uk Date: Mon May 26 03:11:22 2014 +0200 block user input while we
[Libreoffice-commits] core.git: Branch 'feature/chart-3d-chart2' - 5 commits - chart2/source include/vcl vcl/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 14 -- chart2/source/view/inc/GL3DBarChart.hxx|2 ++ chart2/source/view/main/GL3DRenderer.cxx | 19 +++ include/vcl/opengl/OpenGLContext.hxx |2 ++ include/vcl/openglwin.hxx |2 ++ vcl/source/opengl/OpenGLContext.cxx|7 +++ vcl/source/opengl/OpenGLHelper.cxx |6 +++--- vcl/source/window/openglwin.cxx|2 ++ 8 files changed, 49 insertions(+), 5 deletions(-) New commits: commit 032df92ebcb59cc614b703073fdb5f31aa8570fc Author: Markus Mohrhard markus.mohrh...@googlemail.com Date: Fri May 23 02:11:23 2014 +0200 Lsan: fix memory leak Change-Id: I82a517a267cceaac4dd1030d45c67fc070e22def diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx index a9df966..ed2a6c7 100644 --- a/include/vcl/opengl/OpenGLContext.hxx +++ b/include/vcl/opengl/OpenGLContext.hxx @@ -137,6 +137,8 @@ struct GLWindow bMultiSampleSupported(false) { } + +~GLWindow(); }; class VCLOPENGL_DLLPUBLIC OpenGLContext diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index 4128bf4..e07b341 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -19,6 +19,13 @@ using namespace com::sun::star; +GLWindow::~GLWindow() +{ +#if defined( UNX ) +XFree(vi); +#endif +} + OpenGLContext::OpenGLContext(): mpWindow(NULL), m_pChildWindow(NULL), commit 7410d9f8f0d927825ce8820ff8e3afc66c739fb5 Author: Markus Mohrhard markus.mohrh...@googlemail.com Date: Fri May 23 02:01:03 2014 +0200 Lsan: fix memory leak Change-Id: Id8adb7517960a33f9900cb773b62b84db71e795a diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index 50d5799..bace47b 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -38,14 +38,14 @@ OString loadShader(const OUString rFilename) { sal_uInt64 nSize = 0; aFile.getSize(nSize); -char* content = new char[nSize+1]; +boost::scoped_arraychar content(new char[nSize+1]); sal_uInt64 nBytesRead = 0; -aFile.read(content, nSize, nBytesRead); +aFile.read(content.get(), nSize, nBytesRead); if(nSize != nBytesRead) assert(false); content[nSize] = 0; -return OString(content); +return OString(content.get()); } else { commit 640bdf827d45425b07e53bcb1eb223ebd45aea9f Author: Markus Mohrhard markus.mohrh...@googlemail.com Date: Fri May 23 01:58:41 2014 +0200 Lsan: fix memory leaks Change-Id: I010c7c194bf0680a499077b6b364498a09542764 diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx index 7cec6af..e5e08d3 100644 --- a/chart2/source/view/main/GL3DRenderer.cxx +++ b/chart2/source/view/main/GL3DRenderer.cxx @@ -873,6 +873,8 @@ void OpenGL3DRenderer::RenderPolygon3DObject() polygon.verticesList.end(), DeletePointerVertices3D()); std::for_each(polygon.normalsList.begin(), polygon.normalsList.end(), DeletePointerNormals3D()); +delete polygon.vertices; +delete polygon.normals; m_Polygon3DInfoList.pop_front(); } glDepthMask(GL_TRUE); commit eea7e208486e57ac1ff60281c077570f1179aa47 Author: Markus Mohrhard markus.mohrh...@googlemail.com Date: Fri May 23 01:41:49 2014 +0200 Lsan: fix memory leaks Change-Id: I35adb022f12c6833f4f29b2e8dad44394a2c4be5 diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx index 1f8fe41..7cec6af 100644 --- a/chart2/source/view/main/GL3DRenderer.cxx +++ b/chart2/source/view/main/GL3DRenderer.cxx @@ -840,6 +840,19 @@ void OpenGL3DRenderer::RenderPolygon3D(Polygon3DInfo polygon) glUseProgram(0); } +namespace { + +template typename T +struct DeletePointer +{ +void operator()(T* p) +{ +delete p; +} +}; + +} + void OpenGL3DRenderer::RenderPolygon3DObject() { glDepthMask(GL_FALSE); @@ -856,6 +869,10 @@ void OpenGL3DRenderer::RenderPolygon3DObject() { RenderPolygon3D(polygon); } +std::for_each(polygon.verticesList.begin(), +polygon.verticesList.end(), DeletePointerVertices3D()); +std::for_each(polygon.normalsList.begin(), +polygon.normalsList.end(), DeletePointerNormals3D()); m_Polygon3DInfoList.pop_front(); } glDepthMask(GL_TRUE); commit d8af055bacfad18aebceb1be7163ef8bf5e4ff6d Author: Markus Mohrhard markus.mohrh...@collabora.co.uk Date: Fri May 23 01:19:19 2014 +0200 Lsan: fix invalid memory access The chart object can be destroyed after the context. Change-Id: I5ae370638f296ea314ee11680e0a8d81a8fdbe69 diff --git