chart2/source/view/inc/AbstractShapeFactory.hxx | 2 ++ chart2/source/view/inc/DummyXShape.hxx | 4 +++- chart2/source/view/inc/OpenglShapeFactory.hxx | 1 + chart2/source/view/inc/ShapeFactory.hxx | 2 ++ chart2/source/view/main/ChartView.cxx | 1 + chart2/source/view/main/DummyXShape.cxx | 8 ++++++++ chart2/source/view/main/OpenGLRender.cxx | 2 +- chart2/source/view/main/OpenglShapeFactory.cxx | 7 +++++++ 8 files changed, 25 insertions(+), 2 deletions(-)
New commits: commit 0ef43bfca80697a19ba88926f9299ec7cbedacf0 Author: Markus Mohrhard <[email protected]> Date: Sun Jan 12 22:53:19 2014 +0100 fix missing clearing of rendering area Now there are no artifacts left from earlier renderings. Change-Id: I48e6585d838cdf9547c150e1484a967fc9b69329 diff --git a/chart2/source/view/inc/AbstractShapeFactory.hxx b/chart2/source/view/inc/AbstractShapeFactory.hxx index 7efc30e..76d996f 100644 --- a/chart2/source/view/inc/AbstractShapeFactory.hxx +++ b/chart2/source/view/inc/AbstractShapeFactory.hxx @@ -241,6 +241,8 @@ public: */ virtual void render(com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > xRootShape) = 0; + virtual void clearPage(com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > xRootShape) = 0; + static ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes > getChartRootShape( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage>& xPage ); diff --git a/chart2/source/view/inc/DummyXShape.hxx b/chart2/source/view/inc/DummyXShape.hxx index 91ec6d4..42eec30 100644 --- a/chart2/source/view/inc/DummyXShape.hxx +++ b/chart2/source/view/inc/DummyXShape.hxx @@ -426,7 +426,7 @@ public: // normal methods virtual void render(); -private: +protected: std::vector<com::sun::star::uno::Reference< com::sun::star::drawing::XShape > > maUNOShapes; std::vector<DummyXShape*> maShapes; }; @@ -443,6 +443,8 @@ public: virtual void render() SAL_OVERRIDE; + void clear(); + private: GLWindow GLWin; /// Holds the information of our new child window diff --git a/chart2/source/view/inc/OpenglShapeFactory.hxx b/chart2/source/view/inc/OpenglShapeFactory.hxx index c7eb7a4..bb52da4 100644 --- a/chart2/source/view/inc/OpenglShapeFactory.hxx +++ b/chart2/source/view/inc/OpenglShapeFactory.hxx @@ -185,6 +185,7 @@ public: virtual void render(com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > xRootShape) SAL_OVERRIDE; + virtual void clearPage(com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > xRootShape) SAL_OVERRIDE; }; } diff --git a/chart2/source/view/inc/ShapeFactory.hxx b/chart2/source/view/inc/ShapeFactory.hxx index 259e923..99d8837 100644 --- a/chart2/source/view/inc/ShapeFactory.hxx +++ b/chart2/source/view/inc/ShapeFactory.hxx @@ -200,6 +200,8 @@ public: */ virtual void render(com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > ) SAL_OVERRIDE {} + virtual void clearPage(com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > ) SAL_OVERRIDE {} + private: ShapeFactory(); diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx index b0d6768..556d1f0 100644 --- a/chart2/source/view/main/ChartView.cxx +++ b/chart2/source/view/main/ChartView.cxx @@ -2412,6 +2412,7 @@ void ChartView::createShapes() OSL_FAIL("could not set page size correctly"); } pShapeFactory->setPageSize(mxRootShape, aPageSize); + pShapeFactory->clearPage(mxRootShape); { SolarMutexGuard aSolarGuard; diff --git a/chart2/source/view/main/DummyXShape.cxx b/chart2/source/view/main/DummyXShape.cxx index daa468a..596c0c4 100644 --- a/chart2/source/view/main/DummyXShape.cxx +++ b/chart2/source/view/main/DummyXShape.cxx @@ -1226,6 +1226,12 @@ void DummyChart::render() m_GLRender.renderToBitmap(); } +void DummyChart::clear() +{ + maUNOShapes.clear(); + maShapes.clear(); +} + } } diff --git a/chart2/source/view/main/OpenglShapeFactory.cxx b/chart2/source/view/main/OpenglShapeFactory.cxx index 8bb327e..dce9695 100644 --- a/chart2/source/view/main/OpenglShapeFactory.cxx +++ b/chart2/source/view/main/OpenglShapeFactory.cxx @@ -433,6 +433,13 @@ void OpenglShapeFactory::render(uno::Reference< drawing::XShapes > xRootShape) pChart->render(); } +void OpenglShapeFactory::clearPage(uno::Reference< drawing::XShapes > xRootShape) +{ + dummy::DummyChart* pChart = dynamic_cast<dummy::DummyChart*>(xRootShape.get()); + assert(pChart); + pChart->clear(); +} + } //namespace dummy } //namespace chart commit 3d712fef9d67a879b0ebcd03e65750e90e0ed351 Author: Markus Mohrhard <[email protected]> Date: Sun Jan 12 22:50:47 2014 +0100 fix rectangle rendering I had to disable it at the same time as it renders a white space over the whole chart right now. Before the fix it was just the top left quadrant. Change-Id: I499767bcc302e6d6c82437535b4ea10ba212b82d diff --git a/chart2/source/view/main/DummyXShape.cxx b/chart2/source/view/main/DummyXShape.cxx index b4baa57..daa468a 100644 --- a/chart2/source/view/main/DummyXShape.cxx +++ b/chart2/source/view/main/DummyXShape.cxx @@ -568,6 +568,7 @@ DummyRectangle::DummyRectangle(const awt::Size& rSize, const awt::Point& rPoint, void DummyRectangle::render() { + /* SAL_WARN("chart2.opengl", "render DummyRectangle"); debugProperties(maProperties); DummyChart* pChart = getRootShape(); @@ -592,6 +593,7 @@ void DummyRectangle::render() } pChart->m_GLRender.RectangleShapePoint(maPosition.X, maPosition.Y, maSize.Width, maSize.Height); pChart->m_GLRender.RenderRectangleShape(); + */ } DummyText::DummyText(const OUString& rText, const tNameSequence& rNames, diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx index 053a8bc..068722b 100644 --- a/chart2/source/view/main/OpenGLRender.cxx +++ b/chart2/source/view/main/OpenGLRender.cxx @@ -1400,7 +1400,7 @@ int OpenGLRender::RenderRectangleShape() RectanglePointList &pointList = m_RectangleShapePointList.front(); PosVecf3 trans = {pointList.x, pointList.y, pointList.z}; PosVecf3 angle = {0.0f, 0.0f, 0.0f}; - PosVecf3 scale = {pointList.xScale / 2, pointList.yScale / 2, 1.0f}; + PosVecf3 scale = {pointList.xScale, pointList.yScale, 1.0f}; MoveModelf(trans, angle, scale); m_MVP = m_Projection * m_View * m_Model; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
