[Libreoffice-commits] core.git: Branch 'private/moggi/chart-opengl-window-version2' - 2 commits - chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 11 +++ chart2/source/view/inc/GL3DBarChart.hxx|6 +++--- chart2/source/view/inc/GL3DRenderer.hxx|4 ++-- chart2/source/view/main/ChartView.cxx |2 +- 4 files changed, 13 insertions(+), 10 deletions(-) New commits: commit 0aa8bccb46a082754d26178d8c2613940194702b Author: Markus Mohrhard Date: Wed May 7 15:47:17 2014 +0200 set the size to context and renderer before rendering Change-Id: I2945a7b8647d0a40270b1e65cde2a0eb936ab1d1 diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 9c4264d..e21a34b 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -67,6 +67,9 @@ void GL3DBarChart::create3DShapes() void GL3DBarChart::render() { mrWindow.getContext()->makeCurrent(); +Size aSize = mrWindow.GetSizePixel(); +mpRenderer->SetSize(aSize); +mrWindow.getContext()->setWinSize(aSize); for(boost::ptr_vector::iterator itr = maShapes.begin(), itrEnd = maShapes.end(); itr != itrEnd; ++itr) { diff --git a/chart2/source/view/inc/GL3DRenderer.hxx b/chart2/source/view/inc/GL3DRenderer.hxx index 0c5c078..0a9d674 100644 --- a/chart2/source/view/inc/GL3DRenderer.hxx +++ b/chart2/source/view/inc/GL3DRenderer.hxx @@ -249,9 +249,9 @@ private: double m_dFreq; #endif -int m_iWidth; +sal_Int32 m_iWidth; -int m_iHeight; +sal_Int32 m_iHeight; float m_fZmax; commit c0255a6e4d5c2aead2988a5c01e4cbb78c42fdbc Author: Markus Mohrhard Date: Wed May 7 15:34:51 2014 +0200 let us pass the window to get the size correct Change-Id: I8bd8a319e67cdcf7266d3c8f86d1bf132163d665 diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index f19ab64..9c4264d 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -20,10 +20,10 @@ namespace chart { GL3DBarChart::GL3DBarChart(const std::vector& rDataSeries, -OpenGLContext& rContext): +OpenGLWindow& rWindow): maDataSeries(rDataSeries), mpRenderer(new opengl3D::OpenGL3DRenderer()), -mrContext(rContext) +mrWindow(rWindow) { } @@ -66,13 +66,13 @@ void GL3DBarChart::create3DShapes() void GL3DBarChart::render() { -mrContext.makeCurrent(); +mrWindow.getContext()->makeCurrent(); for(boost::ptr_vector::iterator itr = maShapes.begin(), itrEnd = maShapes.end(); itr != itrEnd; ++itr) { itr->render(); } -mrContext.swapBuffers(); +mrWindow.getContext()->swapBuffers(); } } diff --git a/chart2/source/view/inc/GL3DBarChart.hxx b/chart2/source/view/inc/GL3DBarChart.hxx index 6efc86c..06b1be5 100644 --- a/chart2/source/view/inc/GL3DBarChart.hxx +++ b/chart2/source/view/inc/GL3DBarChart.hxx @@ -14,7 +14,7 @@ #include #include "VDataSeries.hxx" -#include +#include namespace chart { @@ -32,7 +32,7 @@ class TemporaryContext; class GL3DBarChart { public: -GL3DBarChart(const std::vector& rDataSeries, OpenGLContext& rContext); +GL3DBarChart(const std::vector& rDataSeries, OpenGLWindow& rContext); ~GL3DBarChart(); void create3DShapes(); @@ -45,7 +45,7 @@ private: boost::ptr_vector maShapes; boost::scoped_ptr mpRenderer; -OpenGLContext& mrContext; +OpenGLWindow& mrWindow; }; } diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx index 98c9b91..79eec7b 100644 --- a/chart2/source/view/main/ChartView.cxx +++ b/chart2/source/view/main/ChartView.cxx @@ -3149,7 +3149,7 @@ void ChartView::createShapes3D() if(!pWindow) return; -GL3DBarChart aBarChart(aDataSeries, *pWindow->getContext()); +GL3DBarChart aBarChart(aDataSeries, *pWindow); aBarChart.create3DShapes(); aBarChart.render(); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'private/moggi/chart-opengl-window-version2' - 2 commits - chart2/source sc/source
chart2/source/view/charttypes/GL3DBarChart.cxx |6 +- chart2/source/view/inc/3DChartObjects.hxx |2 +- chart2/source/view/main/3DChartObjects.cxx |3 ++- sc/source/ui/drawfunc/fuins2.cxx |2 +- 4 files changed, 9 insertions(+), 4 deletions(-) New commits: commit 98aa0b2f0893e1fb02849e2b867c424bf2efc455 Author: Markus Mohrhard Date: Wed May 7 20:37:15 2014 +0200 provide bar color for 3D OGL chart Change-Id: Ia41748cabba89a0257c62f66a280810adc56960e diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index e21a34b..12a5417 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -17,6 +17,8 @@ #include "3DChartObjects.hxx" #include "GL3DRenderer.hxx" +using namespace com::sun::star; + namespace chart { GL3DBarChart::GL3DBarChart(const std::vector& rDataSeries, @@ -53,11 +55,13 @@ void GL3DBarChart::create3DShapes() float nXPos = nIndex * (nBarSizeX + nBarDistanceX); float nYPos = nSeriesIndex * (nBarSizeY + nBarDistanceY); +sal_Int32 nColor = COL_BLUE; + glm::mat4 aBarPosition; aBarPosition = glm::scale(aBarPosition, nBarSizeX, nBarSizeY, nVal); aBarPosition = glm::translate(aBarPosition, nXPos, nYPos, nVal/2); -maShapes.push_back(new opengl3D::Bar(mpRenderer.get(), aBarPosition, nId++)); +maShapes.push_back(new opengl3D::Bar(mpRenderer.get(), aBarPosition, nColor, nId++)); } ++nSeriesIndex; diff --git a/chart2/source/view/inc/3DChartObjects.hxx b/chart2/source/view/inc/3DChartObjects.hxx index e9490e3..666d097 100644 --- a/chart2/source/view/inc/3DChartObjects.hxx +++ b/chart2/source/view/inc/3DChartObjects.hxx @@ -37,7 +37,7 @@ protected: class Bar : public Renderable3DObject { public: -Bar(OpenGL3DRenderer* pRenderer, const glm::mat4& rPosition, sal_uInt32 nId); +Bar(OpenGL3DRenderer* pRenderer, const glm::mat4& rPosition, sal_Int32 nColor, sal_uInt32 nId); virtual void render() SAL_OVERRIDE; private: diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx index 86f9c63..c43b999 100644 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -24,10 +24,11 @@ void Renderable3DObject::render() (void) mnUniqueId; } -Bar::Bar(OpenGL3DRenderer* pRenderer, const glm::mat4& rPosition, sal_uInt32 nId) +Bar::Bar(OpenGL3DRenderer* pRenderer, const glm::mat4& rPosition, sal_Int32 aColor, sal_uInt32 nId) : Renderable3DObject(pRenderer, nId) , mbRoundedCorners(false) , maPos(rPosition) +, maColor(aColor) { } commit 65109f43338f2ee7b5b295cd28123f04d51f96e3 Author: Markus Mohrhard Date: Wed May 7 20:35:42 2014 +0200 fix crash when canceling the chart wizard Change-Id: Iebd9db279e9db22bc273509cf480737d7c7a1dd6 diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx index 873588d..0c941b2 100644 --- a/sc/source/ui/drawfunc/fuins2.cxx +++ b/sc/source/ui/drawfunc/fuins2.cxx @@ -724,7 +724,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* sal_Int16 nDialogRet = xDialog->execute(); if( nDialogRet == ui::dialogs::ExecutableDialogResults::CANCEL ) { -delete pWindow; +delete pChildWindow; // leave OLE inplace mode and unmark OSL_ASSERT( pViewShell ); OSL_ASSERT( pView ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'private/moggi/chart-opengl-window-version2' - 2 commits - chart2/source sc/source
chart2/source/view/main/ChartView.cxx | 10 ++ sc/source/ui/drawfunc/fuins2.cxx | 13 +++-- sc/source/ui/inc/gridwin.hxx |7 +++ sc/source/ui/view/gridwin5.cxx|5 + 4 files changed, 33 insertions(+), 2 deletions(-) New commits: commit ab04cf268c0ef482b78f142b8de057f5b25b9239 Author: Markus Mohrhard Date: Wed May 7 21:01:47 2014 +0200 fix crash on exit Change-Id: I31374684a09f1b056154efcaa5c7dfe73bcc1a61 diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx index 0c941b2..2043ff9 100644 --- a/sc/source/ui/drawfunc/fuins2.cxx +++ b/sc/source/ui/drawfunc/fuins2.cxx @@ -82,6 +82,7 @@ using namespace ::com::sun::star; #include "globstr.hrc" #include "drawview.hxx" #include "markdata.hxx" +#include "gridwin.hxx" namespace { @@ -544,11 +545,19 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* ScDocument* pScDoc = pScDocSh->GetDocument(); bool bUndo (pScDoc->IsUndoEnabled()); -OpenGLWindow* pChildWindow = new OpenGLWindow(pData->GetActiveWin()); +Window* pParentWindow = pData->GetActiveWin(); +ScGridWindow* pGridWindow = dynamic_cast(pParentWindow); +if(pGridWindow) +{ +pGridWindow->AddChildWindow(pGridWindow); +} +else +SAL_WARN("sc", "not a grid window. Youare in serious trouble"); +OpenGLWindow* pChildWindow = new OpenGLWindow(pParentWindow); Size aWindowSize = pChildWindow->LogicToPixel( aSize, MapMode( MAP_100TH_MM ) ); pChildWindow->SetSizePixel(aWindowSize); Wallpaper aBackground = pChildWindow->GetBackground(); -aBackground.SetColor(COL_RED); +aBackground.SetColor(COL_BLUE); pChildWindow->SetBackground(aBackground); pChildWindow->Show(); uno::Reference< chart2::X3DChartWindowProvider > x3DWindowProvider( xChartModel, uno::UNO_QUERY_THROW ); diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx index 63e930b..5170e25 100644 --- a/sc/source/ui/inc/gridwin.hxx +++ b/sc/source/ui/inc/gridwin.hxx @@ -32,6 +32,7 @@ #include #include #include +#include namespace editeng { struct MisspellRanges; @@ -129,6 +130,7 @@ class ScGridWindow : public Window, public DropTargetHelper, public DragSourceHe VisibleRange maVisibleRange; boost::scoped_ptr mpSpellCheckCxt; +boost::ptr_vector maChildWindows; ScViewData* pViewData; ScSplitPos eWhich; @@ -409,6 +411,11 @@ public: voidUpdateShrinkOverlay(); voidUpdateAllOverlays(); +/** + * Takes ownership of the window + */ +voidAddChildWindow(Window* pChildWindow); + protected: // #114409# void ImpCreateOverlayObjects(); diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx index 404ca59..798d34a 100644 --- a/sc/source/ui/view/gridwin5.cxx +++ b/sc/source/ui/view/gridwin5.cxx @@ -474,4 +474,9 @@ void ScGridWindow::SwitchView() } } +void ScGridWindow::AddChildWindow(Window* pWindow) +{ +maChildWindows.push_back(pWindow); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit ee8f7b518353538c31e3dabf5bbc1bdf86a48454 Author: Markus Mohrhard Date: Wed May 7 21:01:28 2014 +0200 hide OpenGLWindow in normal charts Change-Id: Ie45a910d2b99b7644a8055476aa191ef8a724d38 diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx index 79eec7b..93d4133 100644 --- a/chart2/source/view/main/ChartView.cxx +++ b/chart2/source/view/main/ChartView.cxx @@ -2459,6 +2459,14 @@ void ChartView::createShapes() createShapes3D(); return; } +else +{ +// hide OpenGL window for now in normal charts +OpenGLWindow* pWindow = mrChartModel.getOpenGLWindow(); +if(pWindow) +pWindow->Show(false); + +} #endif { @@ -3149,6 +3157,8 @@ void ChartView::createShapes3D() if(!pWindow) return; +pWindow->Show(); + GL3DBarChart aBarChart(aDataSeries, *pWindow); aBarChart.create3DShapes(); aBarChart.render(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits