chart2/opengl/symbolFragmentShader.glsl | 2 +- chart2/opengl/symbolVertexShader.glsl | 2 +- chart2/source/view/main/DummyXShape.cxx | 5 ++--- chart2/source/view/main/OpenGLRender.cxx | 30 ++++++++++++++++++++---------- oox/source/shape/ShapeContextHandler.cxx | 7 ++++--- 5 files changed, 28 insertions(+), 18 deletions(-)
New commits: commit 9aa225f0cb980d81bf0fdcc91dede3c7a3bdf99f Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Jan 31 13:55:57 2014 +0100 better OpenGL debug output Change-Id: I90a3883c0bbead0de02c8d4096eccecc59f1b0e3 diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx index 1e401dc..da99f81 100755 --- a/chart2/source/view/main/OpenGLRender.cxx +++ b/chart2/source/view/main/OpenGLRender.cxx @@ -364,11 +364,15 @@ int OpenGLRender::InitOpenGL(GLWindow aWindow) glGenBuffers(1, &m_VertexBuffer); glGenBuffers(1, &m_ColorBuffer); + CHECK_GL_ERROR(); + m_RenderProID = LoadShaders("renderVertexShader", "renderFragmentShader"); m_RenderVertexID = glGetAttribLocation(m_RenderProID, "vPosition"); m_RenderTexCoordID = glGetAttribLocation(m_RenderProID, "texCoord"); m_RenderTexID = glGetUniformLocation(m_RenderProID, "RenderTex"); + CHECK_GL_ERROR(); + m_CommonProID = LoadShaders("commonVertexShader", "commonFragmentShader"); m_MatrixID = glGetUniformLocation(m_CommonProID, "MVP"); m_2DVertexID = glGetAttribLocation(m_CommonProID, "vPosition"); @@ -378,19 +382,23 @@ int OpenGLRender::InitOpenGL(GLWindow aWindow) #if DEBUG_POSITIONING m_DebugProID = LoadShaders("debugVertexShader", "debugFragmentShader"); m_DebugVertexID = glGetAttribLocation(m_DebugProID, "vPosition"); -#endif CHECK_GL_ERROR(); +#endif m_BackgroundProID = LoadShaders("backgroundVertexShader", "backgroundFragmentShader"); m_BackgroundMatrixID = glGetUniformLocation(m_BackgroundProID, "MVP"); m_BackgroundVertexID = glGetAttribLocation(m_BackgroundProID, "vPosition"); m_BackgroundColorID = glGetAttribLocation(m_BackgroundProID, "vColor"); + CHECK_GL_ERROR(); + m_SymbolProID = LoadShaders("symbolVertexShader", "symbolFragmentShader"); m_SymbolVertexID = glGetAttribLocation(m_SymbolProID, "vPosition"); m_SymbolMatrixID = glGetAttribLocation(m_SymbolProID, "MVP"); m_SymbolColorID = glGetAttribLocation(m_SymbolProID, "vColor"); + CHECK_GL_ERROR(); + m_TextProID = LoadShaders("textVertexShader", "textFragmentShader"); m_TextMatrixID = glGetUniformLocation(m_TextProID, "MVP"); m_TextVertexID = glGetAttribLocation(m_TextProID, "vPosition"); @@ -1734,6 +1742,7 @@ int OpenGLRender::RenderSymbol2DShape(float x, float y, float width, float heigh glDisable(GL_POINT_SMOOTH); glDisable(GL_MULTISAMPLE); glPointSize(10.f); + CHECK_GL_ERROR(); PosVecf3 trans = {x/OPENGL_SCALE_VALUE, y/OPENGL_SCALE_VALUE, m_fZStep}; PosVecf3 angle = {0.0f, 0.0f, 0.0f}; PosVecf3 scale = {width/OPENGL_SCALE_VALUE, height/OPENGL_SCALE_VALUE, 1.0f}; @@ -1744,12 +1753,11 @@ int OpenGLRender::RenderSymbol2DShape(float x, float y, float width, float heigh //fill vertex buffer glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer); glBufferData(GL_ARRAY_BUFFER, 3 * sizeof(float), aPos, GL_STATIC_DRAW); + CHECK_GL_ERROR(); // Use our shader glUseProgram(m_SymbolProID); - glUniform4fv(m_SymbolColorID, 1, &m_2DColor[0]); - glUniformMatrix4fv(m_SymbolMatrixID, 1, GL_FALSE, &m_MVP[0][0]); // 1rst attribute buffer : vertices @@ -1769,9 +1777,9 @@ int OpenGLRender::RenderSymbol2DShape(float x, float y, float width, float heigh glUseProgram(0); glEnable(GL_MULTISAMPLE); glEnable(GL_POINT_SMOOTH); - CHECK_GL_ERROR(); m_fZStep += Z_STEP; + CHECK_GL_ERROR(); return 0; } commit 9741870c3e149befcee34fe01d12e3e7ab6670f2 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Jan 31 13:54:59 2014 +0100 extract the Z_STEP value into a define Change-Id: I38ccce4c35f6cdaa2df0dfc250fcea72a8b79049 diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx index 474a125..1e401dc 100755 --- a/chart2/source/view/main/OpenGLRender.cxx +++ b/chart2/source/view/main/OpenGLRender.cxx @@ -62,6 +62,8 @@ using namespace std; #define WGL_SAMPLES_ARB 0x2042 #endif +#define Z_STEP 0.001; + // end shaders static GLfloat squareVertices[] = { @@ -497,7 +499,7 @@ int OpenGLRender::SetLine2DShapePoint(float x, float y, int listLength) int OpenGLRender::RenderLine2FBO(int) { - m_fZStep += 0.001f; + m_fZStep += Z_STEP; CHECK_GL_ERROR(); glLineWidth(m_fLineWidth); size_t listNum = m_Line2DShapePointList.size(); @@ -1276,7 +1278,7 @@ int OpenGLRender::RectangleShapePoint(float x, float y, float directionX, float int OpenGLRender::RenderRectangleShape(bool bBorder, bool bFill) { - m_fZStep += 0.001f; + m_fZStep += Z_STEP; size_t listNum = m_RectangleShapePointList.size(); for (size_t i = 0; i < listNum; i++) { @@ -1477,7 +1479,7 @@ int OpenGLRender::CreateTextTexture(const BitmapEx& rBitmapEx, awt::Point aPos, int OpenGLRender::RenderTextShape() { CHECK_GL_ERROR(); - m_fZStep += 0.01f; + m_fZStep += Z_STEP; size_t listNum = m_TextInfoList.size(); for (size_t i = 0; i < listNum; i++) { @@ -1591,7 +1593,7 @@ int OpenGLRender::RenderArea2DShape() m_Area2DShapePointList.pop_front(); } glEnable(GL_MULTISAMPLE); - m_fZStep += 0.01f; + m_fZStep += Z_STEP; CHECK_GL_ERROR(); @@ -1719,11 +1721,12 @@ int OpenGLRender::RenderPieSegment2DShape(float fSize, float fPosX, float fPosY) CHECK_GL_ERROR(); } - m_fZStep += 0.01f; + m_fZStep += Z_STEP; CHECK_GL_ERROR(); return 0; } + int OpenGLRender::RenderSymbol2DShape(float x, float y, float width, float height, sal_Int32) { CHECK_GL_ERROR(); @@ -1766,9 +1769,8 @@ int OpenGLRender::RenderSymbol2DShape(float x, float y, float width, float heigh glUseProgram(0); glEnable(GL_MULTISAMPLE); glEnable(GL_POINT_SMOOTH); - m_fZStep += 0.01f; - CHECK_GL_ERROR(); + m_fZStep += Z_STEP; return 0; } commit f3444316a722f74e25990cf31bb5caed80c0ceb2 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Jan 31 13:49:17 2014 +0100 apparently the OpenGL doc is wrong, we need GLSL 1.20 Change-Id: I00a98b8a564c7d36f30672ba91593096e460ef8c diff --git a/chart2/opengl/symbolFragmentShader.glsl b/chart2/opengl/symbolFragmentShader.glsl index 0567321..6d60436 100644 --- a/chart2/opengl/symbolFragmentShader.glsl +++ b/chart2/opengl/symbolFragmentShader.glsl @@ -1,4 +1,4 @@ -#version 110 +#version 120 varying vec4 fragmentColor; diff --git a/chart2/opengl/symbolVertexShader.glsl b/chart2/opengl/symbolVertexShader.glsl index 0ab01d3..b7a9af2 100644 --- a/chart2/opengl/symbolVertexShader.glsl +++ b/chart2/opengl/symbolVertexShader.glsl @@ -1,4 +1,4 @@ -#version 110 +#version 120 attribute vec3 vPosition; uniform mat4 MVP; commit fbcb4011c261449ea35416fdba121dc9ec2fc585 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Jan 31 13:14:21 2014 +0100 use fmod and make code simpler Change-Id: I09cc4fa8288fafa78083da5bdfb8ddc6fc273da9 diff --git a/chart2/source/view/main/DummyXShape.cxx b/chart2/source/view/main/DummyXShape.cxx index 44da917..d7dcf1d 100644 --- a/chart2/source/view/main/DummyXShape.cxx +++ b/chart2/source/view/main/DummyXShape.cxx @@ -351,9 +351,8 @@ void DummyPieSegment2D::render() { DummyChart* pChart = getRootShape(); - while(mfUnitCircleWidthAngleDegree>360) - mfUnitCircleWidthAngleDegree -= 360.0; - while(mfUnitCircleWidthAngleDegree<0) + mfUnitCircleWidthAngleDegree = std::fmod(mfUnitCircleWidthAngleDegree, 360.0); + if(mfUnitCircleWidthAngleDegree) mfUnitCircleWidthAngleDegree += 360.0; pChart->m_GLRender.GeneratePieSegment2D(mfUnitCircleInnerRadius, mfUnitCircleOuterRadius, commit f5fd26fda6e17ff5c4a59e544512b3970fdb8a3e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Jan 19 20:46:52 2014 +0100 CID#1103719: fix memory leak diff --git a/oox/source/shape/ShapeContextHandler.cxx b/oox/source/shape/ShapeContextHandler.cxx index 6cd8e82..6b992d9 100644 --- a/oox/source/shape/ShapeContextHandler.cxx +++ b/oox/source/shape/ShapeContextHandler.cxx @@ -27,6 +27,7 @@ #include "oox/vml/vmldrawingfragment.hxx" #include "oox/vml/vmlshape.hxx" #include "oox/drawingml/themefragmenthandler.hxx" +#include <boost/scoped_ptr.hpp> namespace oox { namespace shape { @@ -103,10 +104,10 @@ uno::Reference<xml::sax::XFastContextHandler> ShapeContextHandler::getChartShape { case XML_chart: { - ContextHandler2Helper *rFragmentHandler - (new ShapeFragmentHandler(*mxFilterBase, msRelationFragmentPath)); + boost::scoped_ptr<ContextHandler2Helper> pFragmentHandler( + new ShapeFragmentHandler(*mxFilterBase, msRelationFragmentPath)); mpShape.reset(new Shape("com.sun.star.drawing.OLE2Shape" )); - mxChartShapeContext.set(new ChartGraphicDataContext(*rFragmentHandler, mpShape, true)); + mxChartShapeContext.set(new ChartGraphicDataContext(*pFragmentHandler, mpShape, true)); break; } default: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits