[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 45 - chart2/source/view/inc/GL3DBarChart.hxx|2 - 2 files changed, 31 insertions(+), 16 deletions(-) New commits: commit b8c442f2b924b03533c7029af3ad10b79e8a89c3 Author: xukai Date: Mon Sep 22 16:38:41 2014 +0800 add 50 histories for histroy rendering Change-Id: I26ff4655d682960ef397be27d5a9fc894502cf8a Reviewed-on: https://gerrit.libreoffice.org/11579 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 6581392..8215158 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -29,7 +29,8 @@ #define DATA_UPDATE_TIME 15 #define FPS_TIME 500 #define DATAUPDATE_FPS_TIME 1000 -#define HISTORY_NUM 5 +#define HISTORY_NUM 51 +#define COLUMNSIZE 25 #define SHOW_VALUE_COUNT 15 #define SHOW_SCROLL_TEXT_DISTANCE 1000 #define FLY_THRESHOLD 20 @@ -1067,7 +1068,7 @@ void GL3DBarChart::updateRenderFPS() osl_getSystemTime(&maFPSRenderStartTime); } osl_getSystemTime(&maFPSRenderEndTime); -addScreenTextShape(maFPS, glm::vec2(-0.99f, 0.99f), 0.06f, true, +addScreenTextShape(maFPS, glm::vec2(-0.99f, 0.99f), 0.07f, true, glm::vec3(0.0f, 0.0f, 0.0f), glm::vec4(1.0f, 0.0f, 0.0f, 1.0f)); } @@ -1113,8 +1114,7 @@ void GL3DBarChart::updateDataUpdateFPS() osl_getSystemTime(&maDataUpdateStartTime); } osl_getSystemTime(&maDataUpdateEndTime); -addScreenTextShape(maDataUpdateFPS, glm::vec2(-0.99f, 0.93f), 0.06f, true, -glm::vec3(0.0f, 0.0f, 0.0f), glm::vec4(0.0f, 1.0f, 1.0f, 1.0f)); +addScreenTextShape(maDataUpdateFPS, glm::vec2(-0.99f, 0.92f), 0.07f); } void GL3DBarChart::recordBarHistory(sal_uInt32 &nBarID, float &nVal) @@ -1130,20 +1130,29 @@ void GL3DBarChart::updateClickEvent() if (maRenderEvent == EVENT_CLICK || maRenderEvent == EVENT_AUTO_FLY || maRenderEvent == EVENT_SHOW_SELECT) { std::list& aList = maBarHistory[mnSelectBarId]; -sal_uInt32 aIdex = 0; +sal_uInt32 nIdex = 0; OUString aTitle; OUString aBarValue; +float nXCoordStart; +float nYCoordStart; //write title if (aList.size() > 1) { aTitle = OUString("Time "); -addScreenTextShape(aTitle, glm::vec2(0.8f, 0.99f), 0.1f, false); +addScreenTextShape(aTitle, glm::vec2(0.875f, 0.99f), 0.07f, false); aTitle = OUString(" Value"); -addScreenTextShape(aTitle, glm::vec2(0.8f, 0.99f), 0.1f); +addScreenTextShape(aTitle, glm::vec2(0.875f, 0.99f), 0.07f); +} +if (aList.size() > COLUMNSIZE) +{ +aTitle = OUString("Time "); +addScreenTextShape(aTitle, glm::vec2(0.55f, 0.99f), 0.07f, false); +aTitle = OUString(" Value"); +addScreenTextShape(aTitle, glm::vec2(0.55f, 0.99f), 0.07f); } for (std::list::iterator it = aList.begin();it != aList.end();++it) { -if (aIdex + 1 == aList.size()) +if (nIdex + 1 == aList.size()) { aBarValue = OUString("Value: ") + OUString::number(*it); maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 1.0f), CALC_POS_EVENT_ID)); @@ -1159,20 +1168,26 @@ void GL3DBarChart::updateClickEvent() } else { -aTitle = OUString("[Time:") + OUString::number((maHistoryCounter - aList.size() + aIdex)) + "]: "; -if (aIdex == 0) +aTitle = OUString("[Time:") + OUString::number((maHistoryCounter - aList.size() + nIdex)) + "]: "; +if (nIdex == 0) { aTitle = OUString("Most Recent") + aTitle; } -else if ((aIdex + 2) == aList.size()) +if (aList.size() < COLUMNSIZE) +{ +nXCoordStart = 0.875f; +nYCoordStart = (nIdex + 1) * 0.07f; +} +else { -aTitle = OUString("Least Recent") + aTitle; +nXCoordStart = nIdex < COLUMNSIZE ? 0.55f : 0.875f; +nYCoordStart = nIdex < COLUMNSIZE ? (nIdex + 1) * 0.07f : (nIdex - 24) * 0.07f; } -addScreenTextShape(aTitle, glm::vec2(0.8f, 0.99f - ((aIdex + 1) * 0.1f)), 0.1f, false); +addScreenTextShape(aTitle, glm::vec2(nXCoordStart, 0.99f - nYCoordStart), 0.07f, false)
[Libreoffice-commits] core.git: chart2/opengl chart2/source
chart2/opengl/screenTextFragmentShader.glsl|6 +-- chart2/source/view/charttypes/GL3DBarChart.cxx | 49 - chart2/source/view/inc/GL3DBarChart.hxx|4 +- chart2/source/view/main/GL3DRenderer.cxx |6 ++- 4 files changed, 41 insertions(+), 24 deletions(-) New commits: commit 7d833aa8a7e572dd266c1e9f52826cbdbfc95185 Author: xukai Date: Mon Sep 22 17:40:30 2014 +0800 add translucent balck background for history rendering Change-Id: I9da69bdb29bb780776355e79fab61d5d9bb844a4 Reviewed-on: https://gerrit.libreoffice.org/11583 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/opengl/screenTextFragmentShader.glsl b/chart2/opengl/screenTextFragmentShader.glsl index f76abee..f60b54fd 100644 --- a/chart2/opengl/screenTextFragmentShader.glsl +++ b/chart2/opengl/screenTextFragmentShader.glsl @@ -13,11 +13,11 @@ in vec2 vTexCoord; uniform sampler2D TextTex; uniform vec4 textColor; out vec4 actualColor; - void main() { -vec3 color = texture(TextTex, vTexCoord).rgb; -actualColor = vec4(textColor.rgb, 1.0 - color.r); +vec3 color = texture2D(TextTex, vTexCoord).rgb; +actualColor = ((1.0 - color.r) == 0.0) ? vec4(0.0, 0.0, 0.0, textColor.a) : +vec4(textColor.rgb, 1.0); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 8215158..5241aa8 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -360,6 +360,9 @@ void RenderBenchMarkThread::MoveToCorner() void RenderBenchMarkThread::ProcessScroll() { //will add other process later +mpChart->mpRenderer->EndClick(); +mnStep = 0; +mnStepsTotal = STEPS; mpChart->maRenderEvent = EVENT_SHOW_SCROLL; } @@ -1019,7 +1022,7 @@ void GL3DBarChart::scroll(long nDelta) SharedResourceAccess(maCond1, maCond2); osl::MutexGuard aGuard(maMutex); if ((maRenderEvent != EVENT_NONE) && (maRenderEvent != EVENT_SHOW_SCROLL) && -(maRenderEvent != EVENT_AUTO_FLY) && (maRenderEvent == EVENT_SHOW_SELECT)) +(maRenderEvent != EVENT_AUTO_FLY) && (maRenderEvent != EVENT_SHOW_SELECT)) return; glm::vec3 maDir = glm::normalize(maCameraPosition - maCameraDirection); maCameraPosition -= (float((nDelta/10)) * maDir); @@ -1042,17 +1045,18 @@ void GL3DBarChart::contextDestroyed() mbValidContext = false; } -void GL3DBarChart::addScreenTextShape(OUString &nStr, glm::vec2 rLeftOrRightTop, float nTextHeight, bool bLeftTopFlag, -const glm::vec3& rPos, const glm::vec4& rColor, sal_uInt32 nEvent) +float GL3DBarChart::addScreenTextShape(OUString &nStr, glm::vec2 aLeftOrRightTop, float nTextHeight, bool bLeftTopFlag, +const glm::vec4& rColor, const glm::vec3& rPos, sal_uInt32 nEvent) { maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, nStr, rColor, nEvent)); const opengl3D::TextCacheItem& rTextCache = mpTextCache->getText(nStr); float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * nTextHeight / 2.0f; opengl3D::ScreenText* pScreenText = static_cast(&maScreenTextShapes.back()); if (bLeftTopFlag) -pScreenText->setPosition(rLeftOrRightTop, glm::vec2(rLeftOrRightTop.x + nRectWidth, rLeftOrRightTop.y - nTextHeight), rPos); +pScreenText->setPosition(aLeftOrRightTop, glm::vec2(aLeftOrRightTop.x + nRectWidth, aLeftOrRightTop.y - nTextHeight), rPos); else -pScreenText->setPosition(glm::vec2(rLeftOrRightTop.x - nRectWidth, rLeftOrRightTop.y), glm::vec2(rLeftOrRightTop.x, rLeftOrRightTop.y - nTextHeight), rPos); +pScreenText->setPosition(glm::vec2(aLeftOrRightTop.x - nRectWidth, aLeftOrRightTop.y), glm::vec2(aLeftOrRightTop.x, aLeftOrRightTop.y - nTextHeight), rPos); +return nRectWidth; } void GL3DBarChart::updateRenderFPS() @@ -1069,7 +1073,7 @@ void GL3DBarChart::updateRenderFPS() } osl_getSystemTime(&maFPSRenderEndTime); addScreenTextShape(maFPS, glm::vec2(-0.99f, 0.99f), 0.07f, true, - glm::vec3(0.0f, 0.0f, 0.0f), glm::vec4(1.0f, 0.0f, 0.0f, 1.0f)); + glm::vec4(1.0f, 0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 0.0f, 0.0f)); } int GL3DBarChart::calcTimeInterval(TimeValue &startTime, TimeValue &endTime) @@ -1133,29 +1137,32 @@ void GL3DBarChart::updateClickEvent() sal_uInt32 nIdex = 0; OUString aTitle; OUString aBarValue; -float nXCoordStart; -float nYCoordStart; +float nXCoordStart, nYCoordStart, nTextWidth, nMaxXCoord = 0.0f, nMinXCoord = 1.0f, nM
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx |2 ++ 1 file changed, 2 insertions(+) New commits: commit cc2bc03eb619e4016f6dd0e255726cda32a8dee6 Author: xukai Date: Thu Aug 28 23:22:13 2014 +0800 fix the fly back bug Change-Id: Ie866d02ab2ca3a5372dbeec6805eee42c8e10312 Reviewed-on: https://gerrit.libreoffice.org/11505 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 5241aa8..96f1019 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -310,6 +310,7 @@ void RenderBenchMarkThread::MoveToBar() maStepDirection = (maTargetDirection - mpChart->maCameraDirection)/((float)mnStepsTotal); mpChart->maClickCond.set(); mbExecuting = true; +mbNeedFlyBack = false; mpChart->mpRenderer->StartClick(mpChart->mnSelectBarId); } MoveCamera(); @@ -339,6 +340,7 @@ void RenderBenchMarkThread::AutoMoveToBar() maStepDirection = (maTargetDirection - mpChart->maCameraDirection)/((float)mnStepsTotal); mpChart->mpRenderer->StartClick(mpChart->mnSelectBarId); mbAutoFlyExecuting = true; +mbNeedFlyBack = false; } MoveCamera(); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 64 + chart2/source/view/inc/GL3DBarChart.hxx|5 + 2 files changed, 50 insertions(+), 19 deletions(-) New commits: commit 221c2eb24b5eeeadb265cfd010fd6851715b24b5 Author: xukai Date: Mon Sep 22 18:18:35 2014 +0800 Show values of bars in selected row Change-Id: I18fbdcb05e3c95c20c96b426bf93e85657209f34 Reviewed-on: https://gerrit.libreoffice.org/11584 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 96f1019..d244c6f 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -34,6 +34,7 @@ #define SHOW_VALUE_COUNT 15 #define SHOW_SCROLL_TEXT_DISTANCE 1000 #define FLY_THRESHOLD 20 +#define DISPLAY_BARS_NUM 3 using namespace com::sun::star; @@ -473,7 +474,8 @@ GL3DBarChart::GL3DBarChart( miDataUpdateCounter(0), mnColorRate(0), mbBenchMarkMode(false), -maHistoryCounter(0) +mnHistoryCounter(0), +mnBarsInRow(0) { maFPSRenderStartTime.Seconds = maFPSRenderStartTime.Nanosec = 0; maFPSRenderEndTime.Seconds = maFPSRenderEndTime.Nanosec = 0; @@ -573,6 +575,8 @@ void GL3DBarChart::create3DShapes(const boost::ptr_vector& rDataSer sal_Int32 nSeriesIndex = 0; sal_Int32 nMaxPointCount = 0; double nMaxVal = findMaxValue(rDataSeriesContainer)/100; +const VDataSeries& rFirstRow = *(rDataSeriesContainer.begin()); +mnBarsInRow = rFirstRow.getTotalPointCount(); for (boost::ptr_vector::const_iterator itr = rDataSeriesContainer.begin(), itrEnd = rDataSeriesContainer.end(); itr != itrEnd; ++itr) { @@ -767,7 +771,7 @@ void GL3DBarChart::create3DShapes(const boost::ptr_vector& rDataSer spawnRenderThread(new RenderBenchMarkThread(this)); } miDataUpdateCounter++; -maHistoryCounter++; +mnHistoryCounter++; mbNeedsNewRender = true; } @@ -1131,12 +1135,45 @@ void GL3DBarChart::recordBarHistory(sal_uInt32 &nBarID, float &nVal) aList.push_back(nVal); } +void GL3DBarChart::getNeighborBarID(sal_uInt32 nSelectBarId, sal_uInt32 *pNeighborBarId) +{ +sal_uInt32 nSelectRow = (nSelectBarId - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1); +for (sal_Int32 i = 0; i < DISPLAY_BARS_NUM; i++) +{ +pNeighborBarId[i] = nSelectBarId + (i - DISPLAY_BARS_NUM / 2) * ID_STEP; +if (pNeighborBarId[i] == nSelectBarId) +continue; +if ((pNeighborBarId[i] - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1) != nSelectRow) +pNeighborBarId[i] = 0; +} +} + +void GL3DBarChart::addMovementScreenText(sal_uInt32 nBarId) +{ +if (nBarId == 0) +return; +std::map::const_iterator itr = maBarMap.find(nBarId); +if (itr == maBarMap.end()) +return; +const BarInformation& rBarInfo = itr->second; +glm::vec3 aTextPos = glm::vec3(rBarInfo.maPos.x + BAR_SIZE_X / 2.0f, + rBarInfo.maPos.y + BAR_SIZE_Y / 2.0f, + rBarInfo.maPos.z); +OUString aBarValue = OUString("Value: ") + OUString::number(rBarInfo.mnVal); +maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f), CALC_POS_EVENT_ID)); +const opengl3D::TextCacheItem& rTextCache = mpTextCache->getText(aBarValue); +float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.03; +opengl3D::ScreenText* pScreenText = static_cast(&maScreenTextShapes.back()); +pScreenText->setPosition(glm::vec2(-nRectWidth / 2, 0.03f), glm::vec2(nRectWidth / 2, -0.03f), aTextPos); +} + void GL3DBarChart::updateClickEvent() { if (maRenderEvent == EVENT_CLICK || maRenderEvent == EVENT_AUTO_FLY || maRenderEvent == EVENT_SHOW_SELECT) { std::list& aList = maBarHistory[mnSelectBarId]; sal_uInt32 nIdex = 0; +sal_uInt32 nBarIdArray[DISPLAY_BARS_NUM] = {0}; OUString aTitle; OUString aBarValue; float nXCoordStart, nYCoordStart, nTextWidth, nMaxXCoord = 0.0f, nMinXCoord = 1.0f, nMaxHight = 0.0f; @@ -1159,25 +1196,12 @@ void GL3DBarChart::updateClickEvent() nTextWidth = addScreenTextShape(aTitle, glm::vec2(0.55f, 0.99f), 0.07f, true, glm::vec4(0.0f, 1.0f, 1.0f, 0.5f)); nMaxXCoord = std::max(nMaxXCoord, 0.55f + nTextWidth); } +getNeighborBarID(mnSelectBarId, nBarIdArray); for (std::list::iterator it = aList.begin();it != aList.end();++it) { -if (nIdex + 1 == aList.size()) +if (nIdex + 1 < aList.size()) { -aBarValue = OUString("Value: ") + OUString::number(*it); -maScreenTextShapes.push_b
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) New commits: commit 35d4c21bf0faaffb87c5197f6d0b3d798aca33bd Author: xukai Date: Tue Sep 2 16:04:36 2014 +0800 Update the color of FPS text Change-Id: Ic6f5889e24f98101426fc215c0313122797400b7 Reviewed-on: https://gerrit.libreoffice.org/11507 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index d244c6f..0604f0e 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -1073,12 +1073,14 @@ void GL3DBarChart::updateRenderFPS() osl_getSystemTime(&maFPSRenderEndTime); nDeltaMs = calcTimeInterval(maFPSRenderStartTime, maFPSRenderEndTime); int iFPS = miFrameCount * 1000 / nDeltaMs; -maFPS = OUString("Render FPS: ") + OUString::number(iFPS); +maFPS = OUString::number(iFPS); miFrameCount = 0; osl_getSystemTime(&maFPSRenderStartTime); } osl_getSystemTime(&maFPSRenderEndTime); -addScreenTextShape(maFPS, glm::vec2(-0.99f, 0.99f), 0.07f, true, +OUString aFPS = OUString("Render FPS: "); +addScreenTextShape(aFPS, glm::vec2(-0.77f, 0.99f), 0.07f, false, glm::vec4(0.0f, 1.0f, 1.0f, 0.0f)); +addScreenTextShape(maFPS, glm::vec2(-0.77f, 0.99f), 0.07f, true, glm::vec4(1.0f, 0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 0.0f, 0.0f)); } @@ -1113,18 +1115,20 @@ void GL3DBarChart::updateDataUpdateFPS() int iFPS = miDataUpdateCounter * 1000 / nDeltaMs; if (iFPS) { -maDataUpdateFPS = OUString("Data Update Rate: ") + OUString::number(iFPS); +maDataUpdateFPS = OUString::number(iFPS); } else { float fFPS = (float)miDataUpdateCounter * 1000 / (float)nDeltaMs; -maDataUpdateFPS = OUString("Data Update Rate: ") + OUString::number(fFPS); +maDataUpdateFPS = OUString::number(fFPS); } miDataUpdateCounter = 0; osl_getSystemTime(&maDataUpdateStartTime); } osl_getSystemTime(&maDataUpdateEndTime); -addScreenTextShape(maDataUpdateFPS, glm::vec2(-0.99f, 0.92f), 0.07f); +OUString aDataUpdateFPS = OUString("Data Update Rate: "); +addScreenTextShape(aDataUpdateFPS, glm::vec2(-0.77, 0.92f), 0.07f, false, glm::vec4(0.0f, 1.0f, 1.0f, 0.0f)); +addScreenTextShape(maDataUpdateFPS, glm::vec2(-0.77f, 0.92f), 0.07f, true, glm::vec4(1.0f, 0.0f, 0.0f, 0.0f)); } void GL3DBarChart::recordBarHistory(sal_uInt32 &nBarID, float &nVal) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/inc/3DChartObjects.hxx |6 +++--- chart2/source/view/main/3DChartObjects.cxx | 12 2 files changed, 11 insertions(+), 7 deletions(-) New commits: commit 98cb400d08a35d26e211fffda24e5b7c6e6672bf Author: xukai Date: Mon Sep 22 19:01:31 2014 +0800 3D fonts suport Change-Id: Id8142586e8ace4ba91a30b2f78d1216f89f22148 Reviewed-on: https://gerrit.libreoffice.org/11585 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/inc/3DChartObjects.hxx b/chart2/source/view/inc/3DChartObjects.hxx old mode 100644 new mode 100755 index 49b21a3..39d09b4 --- a/chart2/source/view/inc/3DChartObjects.hxx +++ b/chart2/source/view/inc/3DChartObjects.hxx @@ -37,7 +37,7 @@ struct TextCacheItem class TextCache { public: -const TextCacheItem &getText(OUString const & rText); +const TextCacheItem &getText(OUString const & rText, bool bIs3dText = false); private: typedef boost::ptr_map TextCacheType; @@ -108,8 +108,8 @@ private: class ScreenText : public Renderable3DObject { public: -ScreenText(OpenGL3DRenderer* pRenderer, TextCache& rTextCache, const OUString& rStr, -const glm::vec4& rColor, sal_uInt32 nId); +ScreenText(OpenGL3DRenderer* pRenderer, TextCache& rTextCache, +const OUString& rStr, glm::vec4 rColor, sal_uInt32 nId, bool bIs3dText = false); virtual void render() SAL_OVERRIDE; void setPosition(const glm::vec2& rTopLeft, const glm::vec2& rBottomRight, diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx old mode 100644 new mode 100755 index c0992e4..13d1fb3 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -70,14 +70,18 @@ void Line::setLineColor(const Color& rColor) maLineColor = rColor; } -const TextCacheItem& TextCache::getText(OUString const & rText) +const TextCacheItem& TextCache::getText(OUString const & rText, bool bIs3dText) { TextCacheType::const_iterator itr = maTextCache.find(rText); if(itr != maTextCache.end()) return *itr->second; VirtualDevice aDevice(*Application::GetDefaultDevice(), 0, 0); -vcl::Font aFont = aDevice.GetFont(); +vcl::Font aFont; +if(bIs3dText) +aFont = vcl::Font("postoffice Bold",Size(0,0)); +else +aFont = aDevice.GetFont(); aFont.SetSize(Size(0, 96)); static bool bOldRender = getenv("OLDRENDER"); if (bOldRender) @@ -129,9 +133,9 @@ void Text::setPosition(const glm::vec3& rTopLeft, const glm::vec3& rTopRight, co } ScreenText::ScreenText(OpenGL3DRenderer* pRenderer, TextCache& rTextCache, -const OUString& rStr, const glm::vec4& rColor, sal_uInt32 nId): +const OUString& rStr, glm::vec4 rColor, sal_uInt32 nId, bool bIs3dText): Renderable3DObject(pRenderer, nId), -maText(rTextCache.getText(rStr)), +maText(rTextCache.getText(rStr,bIs3dText)), maColor(rColor) { } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx |8 1 file changed, 4 insertions(+), 4 deletions(-) New commits: commit 57cc338ddfd2fcca35641ef9f49f13caac932754 Author: xukai Date: Fri Sep 19 13:10:57 2014 +0800 Using 3D fonts Change-Id: If6cdece9f100f51b7a69ac4be4e316fb9c9928d5 Reviewed-on: https://gerrit.libreoffice.org/11535 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 0604f0e..b863dee 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -1164,9 +1164,9 @@ void GL3DBarChart::addMovementScreenText(sal_uInt32 nBarId) rBarInfo.maPos.y + BAR_SIZE_Y / 2.0f, rBarInfo.maPos.z); OUString aBarValue = OUString("Value: ") + OUString::number(rBarInfo.mnVal); -maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f), CALC_POS_EVENT_ID)); +maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f), CALC_POS_EVENT_ID, true)); const opengl3D::TextCacheItem& rTextCache = mpTextCache->getText(aBarValue); -float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.03; +float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.015; opengl3D::ScreenText* pScreenText = static_cast(&maScreenTextShapes.back()); pScreenText->setPosition(glm::vec2(-nRectWidth / 2, 0.03f), glm::vec2(nRectWidth / 2, -0.03f), aTextPos); } @@ -1361,9 +1361,9 @@ void GL3DBarChart::updateScroll() for(size_t i = 0; i < aBarInfoList.size(); i++) { OUString aBarValue = OUString("Value: ") + OUString::number(aBarInfoList[i].mnVal); -maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f), CALC_POS_EVENT_ID)); +maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f), CALC_POS_EVENT_ID, true)); const opengl3D::TextCacheItem& rTextCache = mpTextCache->getText(aBarValue); -float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.03; +float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.015; glm::vec3 aTextPos = glm::vec3(aBarInfoList[i].maPos.x + BAR_SIZE_X / 2.0f, aBarInfoList[i].maPos.y + BAR_SIZE_Y / 2.0f, aBarInfoList[i].maPos.z); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) New commits: commit e975f78a306df35663319d03c882cb679c12e20c Author: xukai Date: Sat Sep 13 10:31:42 2014 +0800 instead of a top view a 45 degree view Change-Id: Iaf922b998552778c527440c4b3a83cb8c05d2a6e Reviewed-on: https://gerrit.libreoffice.org/11536 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index b863dee..3474de3 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -304,10 +304,11 @@ void RenderBenchMarkThread::MoveToBar() glm::vec3 maTargetPosition = rBarInfo.maPos; maTargetPosition.z += 240; maTargetPosition.x += BAR_SIZE_X / 2.0f; -maStep = (maTargetPosition - mpChart->maCameraPosition)/((float)mnStepsTotal); glm::vec3 maTargetDirection = rBarInfo.maPos; maTargetDirection.x += BAR_SIZE_X / 2.0f; maTargetDirection.y += BAR_SIZE_Y / 2.0f; +maTargetPosition.y = maTargetDirection.y - 240; +maStep = (maTargetPosition - mpChart->maCameraPosition)/((float)mnStepsTotal); maStepDirection = (maTargetDirection - mpChart->maCameraDirection)/((float)mnStepsTotal); mpChart->maClickCond.set(); mbExecuting = true; @@ -334,10 +335,11 @@ void RenderBenchMarkThread::AutoMoveToBar() glm::vec3 maTargetPosition = rBarInfo.maPos; maTargetPosition.z += 240; maTargetPosition.x += BAR_SIZE_X / 2.0f; -maStep = (maTargetPosition - mpChart->maCameraPosition)/((float)mnStepsTotal); glm::vec3 maTargetDirection = rBarInfo.maPos; maTargetDirection.x += BAR_SIZE_X / 2.0f; maTargetDirection.y += BAR_SIZE_Y / 2.0f; +maTargetPosition.y = maTargetDirection.y - 240; +maStep = (maTargetPosition - mpChart->maCameraPosition)/((float)mnStepsTotal); maStepDirection = (maTargetDirection - mpChart->maCameraDirection)/((float)mnStepsTotal); mpChart->mpRenderer->StartClick(mpChart->mnSelectBarId); mbAutoFlyExecuting = true; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/inc/GL3DRenderer.hxx |4 chart2/source/view/main/GL3DRenderer.cxx | 23 +++ 2 files changed, 27 insertions(+) New commits: commit 080bab41b64d9531c9d2ae9e5125fd4876bca0bb Author: xukai Date: Mon Sep 22 19:50:26 2014 +0800 Add function:GetDiffOfTwoCameras Change-Id: I3b3f4e8e18d5970d408adcf0457bfdd4e064e37c Reviewed-on: https://gerrit.libreoffice.org/11588 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/inc/GL3DRenderer.hxx b/chart2/source/view/inc/GL3DRenderer.hxx index fe3e96d..655120c 100644 --- a/chart2/source/view/inc/GL3DRenderer.hxx +++ b/chart2/source/view/inc/GL3DRenderer.hxx @@ -282,6 +282,9 @@ private: void SetHighLightBar(BatchBarInfo &barInfo); void DisableHighLightBar(BatchBarInfo &barInfo); void CalcScrollMoveMatrix(bool bNewScene); +glm::mat4 GetDiffOfTwoCameras(const glm::vec3& rBeginPos, const glm::vec3& rEndPos, const glm::vec3& rBeginDirection, const glm::vec3& rEndDirection); +void AddMatrixDiff(const glm::mat4& aMat); +void ResetMatrixDiff(); private: struct ShaderResources @@ -478,6 +481,7 @@ private: float m_fCurDistance; glm::mat4 m_ScrollMoveMatrix; bool m_bUndrawFlag; +glm::mat4 m_matDiff; }; } diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx index 5991a3f..c3397a4 100644 --- a/chart2/source/view/main/GL3DRenderer.cxx +++ b/chart2/source/view/main/GL3DRenderer.cxx @@ -96,6 +96,7 @@ OpenGL3DRenderer::OpenGL3DRenderer(): , m_fCurDistance(0.0f) , m_ScrollMoveMatrix(glm::mat4(1.0)) , m_bUndrawFlag(false) +, m_matDiff(glm::mat4(0.0)) { m_Polygon3DInfo.lineOnly = false; m_Polygon3DInfo.twoSidesLighting = false; @@ -2138,6 +2139,17 @@ void OpenGL3DRenderer::CreateSceneBoxView() m_3DView = glm::lookAt(m_CameraInfo.cameraPos, m_CameraInfo.cameraOrg, m_CameraInfo.cameraUp); +m_3DView = m_3DView + m_matDiff; +} + +void OpenGL3DRenderer::AddMatrixDiff(const glm::mat4& aMat) +{ +m_matDiff = m_matDiff + aMat; +} + +void OpenGL3DRenderer::ResetMatrixDiff() +{ +m_matDiff = glm::mat4(0.0); } void OpenGL3DRenderer::ClearBuffer() @@ -2440,6 +2452,17 @@ void OpenGL3DRenderer::CalcScrollMoveMatrix(bool bNewScene) m_bUndrawFlag = m_fCurDistance >= m_fScrollDistance ? true : false; } +glm::mat4 OpenGL3DRenderer::GetDiffOfTwoCameras(const glm::vec3& rBeginPos, const glm::vec3& rEndPos, const glm::vec3& rBeginDirection, const glm::vec3& rEndDirection) +{ +glm::mat4 aBegin = glm::lookAt(glm::vec3(m_GlobalScaleMatrix * glm::vec4(rBeginPos, 1.0)), + glm::vec3(m_GlobalScaleMatrix * glm::vec4(rBeginDirection, 1.0)), + glm::vec3(0, 0, 1)); +glm::mat4 aEnd = glm::lookAt(glm::vec3(m_GlobalScaleMatrix * glm::vec4(rEndPos, 1.0)), + glm::vec3(m_GlobalScaleMatrix * glm::vec4(rEndDirection, 1.0)), + glm::vec3(0, 0, 1)); +return aEnd - aBegin; +} + glm::mat4 OpenGL3DRenderer::GetProjectionMatrix() { return m_3DProjection; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/inc/GL3DRenderer.hxx |7 --- chart2/source/view/main/GL3DRenderer.cxx |7 +++ 2 files changed, 11 insertions(+), 3 deletions(-) New commits: commit 192b360cfb1bf422f282f4c93e7d0fc0fe83f7db Author: xukai Date: Mon Sep 22 20:06:32 2014 +0800 overloaded function GetDiffOfTwoCameras Change-Id: Ic195c846364ddf9c798d019eed23c27200713017 Reviewed-on: https://gerrit.libreoffice.org/11589 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/inc/GL3DRenderer.hxx b/chart2/source/view/inc/GL3DRenderer.hxx old mode 100644 new mode 100755 index 655120c..b4597a1 --- a/chart2/source/view/inc/GL3DRenderer.hxx +++ b/chart2/source/view/inc/GL3DRenderer.hxx @@ -220,6 +220,10 @@ public: glm::mat4 GetProjectionMatrix(); glm::mat4 GetViewMatrix(); glm::mat4 GetGlobalScaleMatrix(); +glm::mat4 GetDiffOfTwoCameras(const glm::vec3& rBeginPos, const glm::vec3& rEndPos, const glm::vec3& rBeginDirection, const glm::vec3& rEndDirection); +glm::mat4 GetDiffOfTwoCameras(const glm::vec3& rEndPos, const glm::vec3& rEndDirection); +void AddMatrixDiff(const glm::mat4& aMat); +void ResetMatrixDiff(); private: void MoveModelf( const PosVecf3& trans, const PosVecf3& angle, const PosVecf3& scale); @@ -282,9 +286,6 @@ private: void SetHighLightBar(BatchBarInfo &barInfo); void DisableHighLightBar(BatchBarInfo &barInfo); void CalcScrollMoveMatrix(bool bNewScene); -glm::mat4 GetDiffOfTwoCameras(const glm::vec3& rBeginPos, const glm::vec3& rEndPos, const glm::vec3& rBeginDirection, const glm::vec3& rEndDirection); -void AddMatrixDiff(const glm::mat4& aMat); -void ResetMatrixDiff(); private: struct ShaderResources diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx old mode 100644 new mode 100755 index c3397a4..6b0004f --- a/chart2/source/view/main/GL3DRenderer.cxx +++ b/chart2/source/view/main/GL3DRenderer.cxx @@ -2463,6 +2463,13 @@ glm::mat4 OpenGL3DRenderer::GetDiffOfTwoCameras(const glm::vec3& rBeginPos, cons return aEnd - aBegin; } +glm::mat4 OpenGL3DRenderer::GetDiffOfTwoCameras(const glm::vec3& rEndPos, const glm::vec3& rEndDirection) +{ +glm::mat4 aEnd = glm::lookAt(glm::vec3(m_GlobalScaleMatrix * glm::vec4(rEndPos, 1.0)), + glm::vec3(m_GlobalScaleMatrix * glm::vec4(rEndDirection, 1.0)),glm::vec3(0, 0, 1)); +return aEnd - m_3DView; +} + glm::mat4 OpenGL3DRenderer::GetProjectionMatrix() { return m_3DProjection; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: 2 commits - chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 74 + 1 file changed, 52 insertions(+), 22 deletions(-) New commits: commit 5c9ca2fb863e84ae2328f6b0186e137cd5f02ed6 Author: xukai Date: Fri Sep 19 15:18:41 2014 +0800 update effect of bar click Change-Id: Ibb09537d418e78c7fc9b6760988abd56505268b3 Reviewed-on: https://gerrit.libreoffice.org/11539 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index d07653f..9b44421 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -567,6 +567,19 @@ void GL3DBarChart::create3DShapes(const boost::ptr_vector& rDataSer { SharedResourceAccess(maCond1, maCond2); osl::MutexGuard aGuard(maMutex); +mnPreSelectBarId = mnSelectBarId; +mnSelectBarId -= 10; +sal_uInt32 nSelectRow = (mnSelectBarId - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1); +sal_uInt32 nPreSelectRow = (mnPreSelectBarId - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1); +if(nSelectRow != nPreSelectRow) +{ +mnSelectBarId = mnPreSelectBarId; +} +else +{ +mpRenderer->EndClick(); +mpRenderer->StartClick(mnSelectBarId); +} mpRenderer->ReleaseShapes(); // Each series of data flows from left to right, and multiple series are // stacked vertically along y axis. commit 32d267f556634d3bbceba4978efc4d8cb62b148c Author: xukai Date: Mon Sep 22 20:08:26 2014 +0800 make Camera flythrough looks more smooth Change-Id: I46f79bb6ede2da133fe8971319fc4b7257848382 Reviewed-on: https://gerrit.libreoffice.org/11590 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 3474de3..d07653f 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -209,6 +209,7 @@ protected: private: void ProcessMouseEvent(); void MoveCamera(); +void MoveCameraToBar(); void MoveToBar(); void MoveToDefault(); void MoveToCorner(); @@ -224,11 +225,14 @@ private: bool mbNeedFlyBack; glm::vec3 maStep; glm::vec3 maStepDirection; +glm::mat4 maMatrixStep; size_t mnStep; size_t mnStepsTotal; TimeValue maClickFlyBackStartTime; TimeValue maClickFlyBackEndTime; OUString maFPS; +glm::vec3 maTargetPosition; +glm::vec3 maTargetDirection; }; void RenderBenchMarkThread::MoveCamera() @@ -246,21 +250,36 @@ void RenderBenchMarkThread::MoveCamera() mnStep = 0; mbExecuting = false; mbAutoFlyExecuting = false; -if ((mpChart->maRenderEvent == EVENT_CLICK) || (mpChart->maRenderEvent == EVENT_AUTO_FLY)) -{ -mbNeedFlyBack = true; -osl_getSystemTime(&maClickFlyBackStartTime); -osl_getSystemTime(&maClickFlyBackEndTime); -mpChart->maRenderEvent = EVENT_SHOW_SELECT; -} -else -{ -mbNeedFlyBack = false; -mpChart->maRenderEvent = EVENT_NONE; -} +mbNeedFlyBack = false; +mpChart->maRenderEvent = EVENT_NONE; +} +} + +void RenderBenchMarkThread::MoveCameraToBar() +{ +if(mnStep < mnStepsTotal) +{ +++mnStep; +mpChart->mpRenderer->AddMatrixDiff(maMatrixStep); +} +else +{ +mpChart->maCameraPosition = maTargetPosition; +mpChart->maCameraDirection = maTargetDirection; +mpChart->mpCamera->setPosition(maTargetPosition); +mpChart->mpCamera->setDirection(maTargetDirection); +mpChart->mpRenderer->ResetMatrixDiff(); +mnStep = 0; +mbExecuting = false; +mbAutoFlyExecuting = false; +mbNeedFlyBack = true; +osl_getSystemTime(&maClickFlyBackStartTime); +osl_getSystemTime(&maClickFlyBackEndTime); +mpChart->maRenderEvent = EVENT_SHOW_SELECT; } } + void RenderBenchMarkThread::MoveToDefault() { if ((mpChart->maCameraPosition == mpChart->maDefaultCameraDirection) && @@ -301,21 +320,20 @@ void RenderBenchMarkThread::MoveToBar() const GL3DBarChart::BarInformation& rBarInfo = itr->second; mnStep = 0; mnStepsTotal = STEPS; -glm::vec3 maTargetPosition = rBarInfo.maPos; +maTargetPosition = rBarInfo.maPos; maTargetPosition.z += 240; maTargetPosition.x += BAR_SIZE_X / 2.0f; -glm::vec3 maTargetDirection = rBarInfo.maPos; +maTargetDirection = rBarInfo.maPos; maTargetDirection.x += BAR_SIZE_X / 2.0f; maTargetDirection.y += BAR_SIZE_Y / 2.0f; maTargetPosition.y = maTargetDirection.y - 240; -maS
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 11 +-- chart2/source/view/inc/GL3DBarChart.hxx|1 + 2 files changed, 10 insertions(+), 2 deletions(-) New commits: commit bc1b8dd63e74c255a989ac51a92d7db0bba75bc3 Author: xukai Date: Fri Sep 19 15:26:34 2014 +0800 use environment AUTO_FLY to control if autofly Change-Id: Ie47dfdc5f3b07f6e1a6336fc235ac6ccd5d53cab Reviewed-on: https://gerrit.libreoffice.org/11540 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 9b44421..7eefac6 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -494,7 +494,8 @@ GL3DBarChart::GL3DBarChart( mnColorRate(0), mbBenchMarkMode(false), mnHistoryCounter(0), -mnBarsInRow(0) +mnBarsInRow(0), +mbAutoFly(false) { maFPSRenderStartTime.Seconds = maFPSRenderStartTime.Nanosec = 0; maFPSRenderEndTime.Seconds = maFPSRenderEndTime.Nanosec = 0; @@ -518,6 +519,11 @@ GL3DBarChart::GL3DBarChart( mpRenderer->SetScroll(); } } +char *aAutoFly = getenv("AUTO_FLY"); +if (aAutoFly) +{ +mbAutoFly = atoi(aAutoFly); +} maTimer.SetTimeout(DATA_UPDATE_TIME); maTimer.SetTimeoutHdl(LINK(this, GL3DBarChart, updateTimer)); maTimer.Start(); @@ -676,7 +682,8 @@ void GL3DBarChart::create3DShapes(const boost::ptr_vector& rDataSer } else { -processAutoFly(nId, nColor); +if(mbAutoFly) +processAutoFly(nId, nColor); } } maShapes.push_back(new opengl3D::Bar(mpRenderer.get(), aBarPosition, nColor, nId)); diff --git a/chart2/source/view/inc/GL3DBarChart.hxx b/chart2/source/view/inc/GL3DBarChart.hxx index bebca58..4ae2385 100644 --- a/chart2/source/view/inc/GL3DBarChart.hxx +++ b/chart2/source/view/inc/GL3DBarChart.hxx @@ -192,6 +192,7 @@ private: bool mbBenchMarkMode; sal_uInt32 mnHistoryCounter; sal_uInt32 mnBarsInRow; +bool mbAutoFly; // these form a pair: ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 9d97b1a7b1c7f3258335513518c762bd16745f17 Author: xukai Date: Fri Sep 19 15:53:20 2014 +0800 fdo#84001: update environment name BENCHMARK_MODE to UNLOCK_FPS_MODE Change-Id: I7837b2b2639cd003931227f3eb957ef90b905fd0 diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 7eefac6..cf05724 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -502,7 +502,7 @@ GL3DBarChart::GL3DBarChart( maDataUpdateStartTime.Seconds = maDataUpdateStartTime.Nanosec = 0; maDataUpdateEndTime.Seconds = maDataUpdateEndTime.Nanosec = 0; -static const char *aBenchMark = getenv("UNLOCKED_FRAMERATE"); +static const char *aBenchMark = getenv("UNLOCK_FPS_MODE"); if (aBenchMark) { mbBenchMarkMode = atoi(aBenchMark); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx | 68 +++-- chart2/source/view/inc/GL3DBarChart.hxx|5 + 2 files changed, 57 insertions(+), 16 deletions(-) New commits: commit 7f895dfbf5fb084d747e52db678d75e3273cd825 Author: xukai Date: Fri Sep 19 15:38:19 2014 +0800 update camera when bar is clicked Change-Id: Icf397070d1b17a282a07e166d1387881b854b337 Reviewed-on: https://gerrit.libreoffice.org/11541 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index cf05724..5a05323 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -42,7 +42,7 @@ using namespace com::sun::star; namespace chart { const size_t STEPS = 200; - +const size_t STEPS_UPDATE = 100; namespace { const float TEXT_HEIGHT = 10.0f; @@ -211,6 +211,7 @@ private: void MoveCamera(); void MoveCameraToBar(); void MoveToBar(); +void MoveToSelectedBar(); void MoveToDefault(); void MoveToCorner(); void ProcessScroll(); @@ -336,6 +337,36 @@ void RenderBenchMarkThread::MoveToBar() MoveCameraToBar(); } +void RenderBenchMarkThread::MoveToSelectedBar() +{ +mpChart->mnSelectBarId = mpChart->mnUpdateBarId; +std::map::const_iterator itr = mpChart->maBarMap.find(mpChart->mnSelectBarId); +if(itr == mpChart->maBarMap.end()) +{ +mpChart->mnSelectBarId = mpChart->mnPreSelectBarId; +mpChart->maRenderEvent = mpChart->maPreRenderEvent; +mpChart->maClickCond.set(); +return; +} +mpChart->mpRenderer->EndClick(); +const GL3DBarChart::BarInformation& rBarInfo = itr->second; +mnStep = 0; +mnStepsTotal = STEPS_UPDATE; +maTargetPosition = rBarInfo.maPos; +maTargetPosition.z += 240; +maTargetPosition.x += BAR_SIZE_X / 2.0f; +maTargetDirection = rBarInfo.maPos; +maTargetDirection.x += BAR_SIZE_X / 2.0f; +maTargetDirection.y += BAR_SIZE_Y / 2.0f; +maTargetPosition.y = maTargetDirection.y - 240; +maMatrixStep = mpChart->mpRenderer->GetDiffOfTwoCameras( maTargetPosition, maTargetDirection)/((float)mnStepsTotal); +mpChart->maClickCond.set(); +mbExecuting = true; +mbNeedFlyBack = false; +mpChart->mpRenderer->StartClick(mpChart->mnSelectBarId); +mpChart->maRenderEvent = EVENT_CLICK; +} + void RenderBenchMarkThread::AutoMoveToBar() { if (!mbAutoFlyExecuting) @@ -403,7 +434,11 @@ void RenderBenchMarkThread::ProcessClickFlyBack() void RenderBenchMarkThread::ProcessMouseEvent() { ProcessClickFlyBack(); -if (mpChart->maRenderEvent == EVENT_CLICK) +if (mpChart->maRenderEvent == EVENT_SELECTBAR_UPDEDATE) +{ +MoveToSelectedBar(); +} +else if (mpChart->maRenderEvent == EVENT_CLICK) { MoveToBar(); } @@ -495,7 +530,8 @@ GL3DBarChart::GL3DBarChart( mbBenchMarkMode(false), mnHistoryCounter(0), mnBarsInRow(0), -mbAutoFly(false) +mbAutoFly(false), +mnUpdateBarId(0) { maFPSRenderStartTime.Seconds = maFPSRenderStartTime.Nanosec = 0; maFPSRenderEndTime.Seconds = maFPSRenderEndTime.Nanosec = 0; @@ -573,18 +609,22 @@ void GL3DBarChart::create3DShapes(const boost::ptr_vector& rDataSer { SharedResourceAccess(maCond1, maCond2); osl::MutexGuard aGuard(maMutex); -mnPreSelectBarId = mnSelectBarId; -mnSelectBarId -= 10; -sal_uInt32 nSelectRow = (mnSelectBarId - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1); -sal_uInt32 nPreSelectRow = (mnPreSelectBarId - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1); -if(nSelectRow != nPreSelectRow) -{ -mnSelectBarId = mnPreSelectBarId; -} -else +if(mnSelectBarId) { -mpRenderer->EndClick(); -mpRenderer->StartClick(mnSelectBarId); +int nSelectBarId = mnSelectBarId; +int nPreSelectBarId = nSelectBarId; +nSelectBarId -= 10; +sal_uInt32 nSelectRow = (nSelectBarId - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1); +sal_uInt32 nPreSelectRow = (nPreSelectBarId - SHAPE_START_ID) / ID_STEP / (mnBarsInRow + 1); +if(nSelectRow == nPreSelectRow) +{ +std::map::const_iterator itr = maBarMap.find(nSelectBarId); +if((maRenderEvent == EVENT_CLICK || maRenderEvent == EVENT_SHOW_SELECT || maRenderEvent == EVENT_AUTO_FLY)&&(itr != maBarMap.end())) +{ +mnUpdateBarId = nSelectBarId; +maRenderEvent = EVENT_SELECTBAR_UPDEDATE; +} +} } mpRenderer->ReleaseShapes(); // Each series of data flows from left to right, and multiple series are diff --git a/chart2/source/view/inc/GL3DBarChart.hxx b/chart2/source/view/inc/GL3DBarChart.hxx index 4ae2385..30607e6 100644 --- a/
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/charttypes/GL3DBarChart.cxx |4 ++-- chart2/source/view/main/3DChartObjects.cxx |2 +- 2 files changed, 3 insertions(+), 3 deletions(-) New commits: commit 62deb6d6227105d67e46dbfb89a43dc5e510791a Author: xukai Date: Wed Sep 24 13:47:53 2014 +0800 Changing the font properties makes it look better Change-Id: I1be1833ef416e5eed1e7edbb1254302e28bacba7 Reviewed-on: https://gerrit.libreoffice.org/11620 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx old mode 100644 new mode 100755 index 05738d7..45aa0b3 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -1244,7 +1244,7 @@ void GL3DBarChart::addMovementScreenText(sal_uInt32 nBarId) OUString aBarValue = OUString("Value: ") + OUString::number(rBarInfo.mnVal); maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f), CALC_POS_EVENT_ID, true)); const opengl3D::TextCacheItem& rTextCache = mpTextCache->getText(aBarValue); -float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.015; +float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.024; opengl3D::ScreenText* pScreenText = static_cast(&maScreenTextShapes.back()); pScreenText->setPosition(glm::vec2(-nRectWidth / 2, 0.03f), glm::vec2(nRectWidth / 2, -0.03f), aTextPos); } @@ -1441,7 +1441,7 @@ void GL3DBarChart::updateScroll() OUString aBarValue = OUString("Value: ") + OUString::number(aBarInfoList[i].mnVal); maScreenTextShapes.push_back(new opengl3D::ScreenText(mpRenderer.get(), *mpTextCache, aBarValue, glm::vec4(0.0f, 0.0f, 1.0f, 0.0f), CALC_POS_EVENT_ID, true)); const opengl3D::TextCacheItem& rTextCache = mpTextCache->getText(aBarValue); -float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.015; +float nRectWidth = (float)rTextCache.maSize.Width() / (float)rTextCache.maSize.Height() * 0.024; glm::vec3 aTextPos = glm::vec3(aBarInfoList[i].maPos.x + BAR_SIZE_X / 2.0f, aBarInfoList[i].maPos.y + BAR_SIZE_Y / 2.0f, aBarInfoList[i].maPos.z); diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx index 13d1fb3..7bf6966 100755 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -79,7 +79,7 @@ const TextCacheItem& TextCache::getText(OUString const & rText, bool bIs3dText) VirtualDevice aDevice(*Application::GetDefaultDevice(), 0, 0); vcl::Font aFont; if(bIs3dText) -aFont = vcl::Font("postoffice Bold",Size(0,0)); +aFont = vcl::Font("Brillante St",Size(0,0)); else aFont = aDevice.GetFont(); aFont.SetSize(Size(0, 96)); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/view/inc/GL3DRenderer.hxx | 58 - chart2/source/view/main/GL3DRenderer.cxx | 138 +++ 2 files changed, 127 insertions(+), 69 deletions(-) New commits: commit 489b472d26d8ae080f4ba2c02c473952a006f47c Author: xukai Date: Tue Apr 29 17:44:16 2014 +0800 Format GL3DRenderer code Add function Dynamic calculation of view matrix Change-Id: I927cf9a8124ddf81830d8fef4508dae8697d7fc6 diff --git a/chart2/source/view/inc/GL3DRenderer.hxx b/chart2/source/view/inc/GL3DRenderer.hxx index 09c904b..cc86bee 100644 --- a/chart2/source/view/inc/GL3DRenderer.hxx +++ b/chart2/source/view/inc/GL3DRenderer.hxx @@ -141,6 +141,17 @@ struct PackedVertex{ }; }; +typedef struct SceneBox +{ +float maxXCoord; +float minXCoord; +float maxYCoord; +float minYCoord; +float maxZCoord; +float minZCoord; +}SceneBox; + + class OpenGL3DRenderer : public IOpenGLInfoProvider { public: @@ -167,34 +178,34 @@ public: double GetTime(); void SetFPS(float fps); void SetClickPos(Point aMPos); -int RenderClickPos(Point aMPos); +void RenderClickPos(Point aMPos); private: -int MoveModelf(PosVecf3 trans, PosVecf3 angle, PosVecf3 scale); +void MoveModelf(PosVecf3& trans,PosVecf3& angle,PosVecf3& scale); void GetFreq(); -int RenderPolygon3DObject(); -int RenderLine3D(Polygon3DInfo &polygon); -int RenderPolygon3D(Polygon3DInfo &polygon); -int Init3DUniformBlock(); -int Update3DUniformBlock(); -int RenderExtrude3DObject(); -int RenderFPS(float fps); -int RenderText(const ::rtl::OUString& string, com::sun::star::awt::Point aPos); -int RenderExtrudeSurface(const Extrude3DInfo& extrude3D); -int RenderExtrudeTopSurface(const Extrude3DInfo& extrude3D); -int RenderExtrudeMiddleSurface(const Extrude3DInfo& extrude3D); -int RenderExtrudeBottomSurface(const Extrude3DInfo& extrude3D); -int RenderExtrudeFlatSurface(const Extrude3DInfo& extrude3D, int surIndex); -int ProcessUnrenderedShape(); +void RenderPolygon3DObject(); +void RenderLine3D(Polygon3DInfo &polygon); +void RenderPolygon3D(Polygon3DInfo &polygon); +void Init3DUniformBlock(); +void Update3DUniformBlock(); +void RenderExtrude3DObject(); +void RenderFPS(float fps); +void RenderText(const ::rtl::OUString& string, com::sun::star::awt::Point aPos); +void RenderExtrudeSurface(const Extrude3DInfo& extrude3D); +void RenderExtrudeTopSurface(const Extrude3DInfo& extrude3D); +void RenderExtrudeMiddleSurface(const Extrude3DInfo& extrude3D); +void RenderExtrudeBottomSurface(const Extrude3DInfo& extrude3D); +void RenderExtrudeFlatSurface(const Extrude3DInfo& extrude3D, int surIndex); +void ProcessUnrenderedShape(); glm::vec4 GetColorByIndex(int index); sal_uInt32 GetIndexByColor(sal_uInt32 r, sal_uInt32 g, sal_uInt32 b); -int ProcessPickingBox(); +void ProcessPickingBox(); int ProcessExtrude3DPickingBox(); void RenderCoordinateAxis(); -int AddVertexData(GLuint vertexBuf); -int AddNormalData(GLuint normalBuf); -int AddIndexData(GLuint indexBuf); +void AddVertexData(GLuint vertexBuf); +void AddNormalData(GLuint normalBuf); +void AddIndexData(GLuint indexBuf); bool GetSimilarVertexIndex(PackedVertex & packed, std::map & VertexToOutIndex, unsigned short & result @@ -207,6 +218,7 @@ private: void CreateActualRoundedCube(float fRadius, int iSubDivY, int iSubDivZ, float width, float height, float depth); int GenerateRoundCornerBar(std::vector &vertices, std::vector &normals, float fRadius, int iSubDivY, int iSubDivZ, float width, float height, float depth); +void CreateSceneBoxView(); private: // Projection matrix : default 45 degree Field of View, 4:3 ratio, display range : 0.1 unit <-> 100 units glm::mat4 m_Projection; @@ -316,6 +328,12 @@ private: //TODO: moggi: kill the following parts // don't add anything below or I will remove it size_t m_iPointNum; + +SceneBox m_SenceBox; + +float m_fViewAngle; + +float m_fHeightWeight; }; } diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx index e89ff49..b977654 100644 --- a/chart2/source/view/main/GL3DRenderer.cxx +++ b/chart2/source/view/main/GL3DRenderer.cxx @@ -87,8 +87,15 @@ OpenGL3DRenderer::OpenGL3DRenderer(): m_Extrude3DInfo.startIndex[i] = m_RoundBarMesh.iElementStartIndices[i]; m_Extrude3DInfo.size[i] = m_RoundBarMesh.iElementSizes[i]; } - +m_fViewAngle = 30.0f; +m_SenceBox.maxXCoord = -1.0 * FLT_MAX; +m_SenceBox.minXCoord = FLT_MAX; +m_SenceBox.maxYCoord = -1.0 * FLT_MAX; +m_SenceBox.minYCoord = FLT_MAX; +m_SenceBox.maxZCoord = -1.0 *
[Libreoffice-commits] core.git: 10 commits - chart2/opengl chart2/Package_opengl.mk chart2/source
chart2/Package_opengl.mk |2 chart2/opengl/shape3DFragmentShader.glsl | 111 + chart2/opengl/shape3DVertexShader.glsl | 30 + chart2/source/view/inc/3DChartObjects.hxx | 12 ++ chart2/source/view/inc/GL3DRenderer.hxx| 11 +- chart2/source/view/main/3DChartObjects.cxx | 34 ++ chart2/source/view/main/GL3DRenderer.cxx | 148 +++-- 7 files changed, 254 insertions(+), 94 deletions(-) New commits: commit e0dc3c8a0a69bb44a583b42d6fb823efbc311dc5 Author: xukai Date: Mon May 5 14:05:08 2014 +0800 add codes to Line::render() Change-Id: I6510f486707b08ea8f611105f40cc4c7e1581a7f diff --git a/chart2/source/view/inc/3DChartObjects.hxx b/chart2/source/view/inc/3DChartObjects.hxx index 54b6a24..b1f8de4 100644 --- a/chart2/source/view/inc/3DChartObjects.hxx +++ b/chart2/source/view/inc/3DChartObjects.hxx @@ -54,6 +54,8 @@ class Line : public Renderable3DObject public: Line( sal_uInt32 nId ); +virtual void render() SAL_OVERRIDE; + private: glm::vec3 maPosBegin; glm::vec3 maPosEnd; @@ -87,7 +89,7 @@ class Camera : public Renderable3DObject { public: Camera(); -virtual void render(); +virtual void render() SAL_OVERRIDE; private: glm::vec3 maPos; glm::vec3 maUp; diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx index 38279a3..045107b 100644 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -54,6 +54,14 @@ Line::Line(sal_uInt32 nId): { } +void Line::render() +{ +getRender()->AddShapePolygon3DObject(0, true, (sal_Int32)maLineColor.GetColor(), 0, 0); +getRender()->AddPolygon3DObjectPoint(maPosBegin.x, maPosBegin.y, maPosBegin.z); +getRender()->AddPolygon3DObjectPoint(maPosEnd.x, maPosEnd.y, maPosEnd.z); +getRender()->EndAddShapePolygon3DObject(); +} + Text::Text(sal_uInt32 nId): Renderable3DObject(nId) { commit 461aa03c95e3297041de4eec8b3d44da348f60e8 Author: xukai Date: Mon May 5 13:00:46 2014 +0800 remove the codes of set camera info to render() Change-Id: I9c2aecd5dea617e7cd69c1fc005b6a9ee237f202 diff --git a/chart2/source/view/inc/3DChartObjects.hxx b/chart2/source/view/inc/3DChartObjects.hxx index 1fa9402..54b6a24 100644 --- a/chart2/source/view/inc/3DChartObjects.hxx +++ b/chart2/source/view/inc/3DChartObjects.hxx @@ -87,6 +87,7 @@ class Camera : public Renderable3DObject { public: Camera(); +virtual void render(); private: glm::vec3 maPos; glm::vec3 maUp; diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx index 6148f03..38279a3 100644 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -70,9 +70,14 @@ Camera::Camera(): maUp(0, 1, 0), maDirection(glm::vec3(0,0,0)-maPos) { +} + +void Camera::render() +{ getRender()->SetCameraInfo(maPos, maDirection, maUp, true); } + namespace temporary { TemporaryContext::TemporaryContext(): commit 4e8a9d669f835cb2f1df3efc9b41d86d51af90d7 Author: xukai Date: Mon May 5 12:25:42 2014 +0800 add codes to set camera info Change-Id: Id6bac3a8dd46d7994c9e64c9e0c16e8c7ac036ac diff --git a/chart2/source/view/inc/3DChartObjects.hxx b/chart2/source/view/inc/3DChartObjects.hxx index e3165e2..1fa9402 100644 --- a/chart2/source/view/inc/3DChartObjects.hxx +++ b/chart2/source/view/inc/3DChartObjects.hxx @@ -89,6 +89,7 @@ public: Camera(); private: glm::vec3 maPos; +glm::vec3 maUp; glm::vec3 maDirection; }; diff --git a/chart2/source/view/inc/GL3DRenderer.hxx b/chart2/source/view/inc/GL3DRenderer.hxx index b31a5ac..5f66203 100644 --- a/chart2/source/view/inc/GL3DRenderer.hxx +++ b/chart2/source/view/inc/GL3DRenderer.hxx @@ -109,6 +109,7 @@ typedef struct Extrude3DInfo typedef struct CameraInfo { +bool useDefault; glm::vec3 cameraPos; glm::vec3 cameraOrg; glm::vec3 cameraUp; @@ -179,7 +180,7 @@ public: void SetClickPos(Point aMPos); void RenderClickPos(Point aMPos); void SetSize(const Size& rSize); - +void SetCameraInfo(glm::vec3 pos, glm::vec3 direction, glm::vec3 up, bool useDefalut); private: void MoveModelf(PosVecf3& trans,PosVecf3& angle,PosVecf3& scale); diff --git a/chart2/source/view/main/3DChartObjects.cxx b/chart2/source/view/main/3DChartObjects.cxx index f7e0eb7..6148f03 100644 --- a/chart2/source/view/main/3DChartObjects.cxx +++ b/chart2/source/view/main/3DChartObjects.cxx @@ -67,8 +67,10 @@ Rectangle::Rectangle(sal_uInt32 nId): Camera::Camera(): Renderable3DObject(0), maPos(10,10,-10), +maUp(0, 1, 0), maDirection(glm::vec3(0,0,0)-maPos) { +getRender()->SetCameraInfo(maPos, maDirection, maUp, true); } namespace temporary { diff --git a/chart2/source/view/main/GL3DRende
[Libreoffice-commits] core.git: Changes to 'refs/changes/37/11537/3'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/20/11620/2'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/43/11543/3'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/43/11543/4'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/43/11543/1'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/40/11540/2'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/89/11589/1'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/41/11541/2'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'feature/calc-group-interpreter-4' - sc/source
sc/source/core/opencl/formulagroupcl.cxx | 21 sc/source/core/opencl/formulagroupcl_finacial.hxx | 31 sc/source/core/opencl/op_financial.cxx|9 +++ sc/source/core/opencl/op_financial.hxx|1 sc/source/core/opencl/opbase.hxx |6 ++ sc/source/core/opencl/opinlinefun_finacial.cxx| 53 ++ 6 files changed, 89 insertions(+), 32 deletions(-) New commits: commit d3f16e81ffb66d89d3954fd624c1a2e764d62415 Author: Xukai Liu Date: Thu Oct 31 20:20:37 2013 -0500 GPU Calc: refactor code generation for inlined library routines Refactored two library functions: Round and approxEqual. Generate them only when corresponding Calc spreadsheet functions are used. Change-Id: Ibf532d551ba0d99a117cedd4a0f3397acb5e017d Signed-off-by: I-Jui (Ray) Sung diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index d1ece4c..ed186b3 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -823,6 +823,13 @@ public: t = t + mvSubArguments[i]->DumpOpName(); return t; } +virtual void DumpInlineFun(std::set& decls, +std::set& funs) const +{ +mpCodeGen->BinInlineFun(decls,funs); +for (unsigned i = 0; i < mvSubArguments.size(); i++) +mvSubArguments[i]->DumpInlineFun(decls,funs); +} private: SubArgumentsType mvSubArguments; boost::scoped_ptr mpCodeGen; @@ -1181,6 +1188,18 @@ public: // preambles decl << publicFunc; decl << finacialFunc; +DK->DumpInlineFun(inlineDecl,inlineFun); +for(std::set::iterator set_iter=inlineDecl.begin(); + set_iter!=inlineDecl.end();set_iter++) +{ +decl<<*set_iter; +} + +for(std::set::iterator set_iter=inlineFun.begin(); + set_iter!=inlineFun.end();set_iter++) +{ +decl<<*set_iter; +} mSyms.DumpSlidingWindowFunctions(decl); mKernelSignature = DK->DumpOpName(); decl << "__kernel void DynamicKernel" << mKernelSignature; @@ -1256,6 +1275,8 @@ private: cl_program mpProgram; cl_kernel mpKernel; cl_mem mpResClmem; // Results +std::set inlineDecl; +std::set inlineFun; }; DynamicKernel::~DynamicKernel() diff --git a/sc/source/core/opencl/formulagroupcl_finacial.hxx b/sc/source/core/opencl/formulagroupcl_finacial.hxx index a8db8e9..da09168 100644 --- a/sc/source/core/opencl/formulagroupcl_finacial.hxx +++ b/sc/source/core/opencl/formulagroupcl_finacial.hxx @@ -9,38 +9,7 @@ #ifndef SC_OPENCL_FORMULAGROUPCL_FINACIAL_HXX #define SC_OPENCL_FORMULAGROUPCL_FINACIAL_HXX - const char* finacialFunc = -"bool approxEqual(double a, double b)\n" -"{\n" -"\tif (a == b)\n" -"\t\treturn true;\n" -"\tdouble x = a - b;\n" -"\treturn (x < 0.0 ? -x : x) < ((a < 0.0 ? -a : a) * (1.0 / (16777216.0 *" -"16777216.0)));\n" -"}\n" -"double constant nKorrVal[] = {0, 9e-1, 9e-2, 9e-3, 9e-4, 9e-5, 9e-6, 9e-7, " -"9e-8,9e-9, 9e-10, 9e-11, 9e-12, 9e-13, 9e-14, 9e-15};\n" -"constant double SCdEpsilon = 1.0E-7;\n" -"double Round(double fValue)\n" -"{\n" -"\tif (fValue == 0.0)\n" -"\t\treturn fValue;\n" -"\tdouble fFac = 0;\n" -"\tint nExp;\n" -"\tif (fValue > 0.0)\n" -"\t\tnExp = (floor(log10(fValue)));\n" -"\telse\n" -"\t\tnExp = 0;\n" -"\tint nIndex = 15 - nExp;\n" -"\tif (nIndex > 15)\n" -"\t\tnIndex = 15;\n" -"\telse if (nIndex <= 1)\n" -"\t\tnIndex = 0;\n" -"\tfValue = floor(fValue + 0.5 + nKorrVal[nIndex]);\n" -"\treturn fValue;\n" -"}\n" -"void RateIteration(){\n\tdouble tmp = Round(3.0);\n\treturn;\n}\n" "double GetRmz( double fZins, double fZzr, double fBw, double fZw, int nF )\n" "{\n" "\tdouble fRmz;\n" diff --git a/sc/source/core/opencl/op_financial.cxx b/sc/source/core/opencl/op_financial.cxx index 5ae04ff..da4845c 100644 --- a/sc/source/core/opencl/op_financial.cxx +++ b/sc/source/core/opencl/op_financial.cxx @@ -21,6 +21,8 @@ using namespace formula; namespace sc { namespace opencl { +// Definitions of inline functions +#include "opinlinefun_finacial.cxx" void RRI::GenSlidingWindowFunction( std::stringstream &ss, const std::string sSymName, SubArguments &vSubArguments) @@ -2513,6 +2515,13 @@ void O
[Libreoffice-commits] core.git: sc/source
sc/source/core/opencl/formulagroupcl.cxx | 21 sc/source/core/opencl/formulagroupcl_finacial.hxx | 31 sc/source/core/opencl/op_financial.cxx|9 +++ sc/source/core/opencl/op_financial.hxx|1 sc/source/core/opencl/opbase.hxx |6 ++ sc/source/core/opencl/opinlinefun_finacial.cxx| 53 ++ 6 files changed, 89 insertions(+), 32 deletions(-) New commits: commit 7abfae3622fc952ecac8ebacb1d70650ef773619 Author: Xukai Liu Date: Thu Oct 31 20:20:37 2013 -0500 GPU Calc: refactor code generation for inlined library routines Refactored two library functions: Round and approxEqual. Generate them only when corresponding Calc spreadsheet functions are used. Change-Id: Ibf532d551ba0d99a117cedd4a0f3397acb5e017d Signed-off-by: I-Jui (Ray) Sung diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index c40c289..2dfc0cf 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -823,6 +823,13 @@ public: t = t + mvSubArguments[i]->DumpOpName(); return t; } +virtual void DumpInlineFun(std::set& decls, +std::set& funs) const +{ +mpCodeGen->BinInlineFun(decls,funs); +for (unsigned i = 0; i < mvSubArguments.size(); i++) +mvSubArguments[i]->DumpInlineFun(decls,funs); +} private: SubArgumentsType mvSubArguments; boost::scoped_ptr mpCodeGen; @@ -1181,6 +1188,18 @@ public: // preambles decl << publicFunc; decl << finacialFunc; +DK->DumpInlineFun(inlineDecl,inlineFun); +for(std::set::iterator set_iter=inlineDecl.begin(); + set_iter!=inlineDecl.end();set_iter++) +{ +decl<<*set_iter; +} + +for(std::set::iterator set_iter=inlineFun.begin(); + set_iter!=inlineFun.end();set_iter++) +{ +decl<<*set_iter; +} mSyms.DumpSlidingWindowFunctions(decl); mKernelSignature = DK->DumpOpName(); decl << "__kernel void DynamicKernel" << mKernelSignature; @@ -1255,6 +1274,8 @@ private: cl_program mpProgram; cl_kernel mpKernel; cl_mem mpResClmem; // Results +std::set inlineDecl; +std::set inlineFun; }; DynamicKernel::~DynamicKernel() diff --git a/sc/source/core/opencl/formulagroupcl_finacial.hxx b/sc/source/core/opencl/formulagroupcl_finacial.hxx index a8db8e9..da09168 100644 --- a/sc/source/core/opencl/formulagroupcl_finacial.hxx +++ b/sc/source/core/opencl/formulagroupcl_finacial.hxx @@ -9,38 +9,7 @@ #ifndef SC_OPENCL_FORMULAGROUPCL_FINACIAL_HXX #define SC_OPENCL_FORMULAGROUPCL_FINACIAL_HXX - const char* finacialFunc = -"bool approxEqual(double a, double b)\n" -"{\n" -"\tif (a == b)\n" -"\t\treturn true;\n" -"\tdouble x = a - b;\n" -"\treturn (x < 0.0 ? -x : x) < ((a < 0.0 ? -a : a) * (1.0 / (16777216.0 *" -"16777216.0)));\n" -"}\n" -"double constant nKorrVal[] = {0, 9e-1, 9e-2, 9e-3, 9e-4, 9e-5, 9e-6, 9e-7, " -"9e-8,9e-9, 9e-10, 9e-11, 9e-12, 9e-13, 9e-14, 9e-15};\n" -"constant double SCdEpsilon = 1.0E-7;\n" -"double Round(double fValue)\n" -"{\n" -"\tif (fValue == 0.0)\n" -"\t\treturn fValue;\n" -"\tdouble fFac = 0;\n" -"\tint nExp;\n" -"\tif (fValue > 0.0)\n" -"\t\tnExp = (floor(log10(fValue)));\n" -"\telse\n" -"\t\tnExp = 0;\n" -"\tint nIndex = 15 - nExp;\n" -"\tif (nIndex > 15)\n" -"\t\tnIndex = 15;\n" -"\telse if (nIndex <= 1)\n" -"\t\tnIndex = 0;\n" -"\tfValue = floor(fValue + 0.5 + nKorrVal[nIndex]);\n" -"\treturn fValue;\n" -"}\n" -"void RateIteration(){\n\tdouble tmp = Round(3.0);\n\treturn;\n}\n" "double GetRmz( double fZins, double fZzr, double fBw, double fZw, int nF )\n" "{\n" "\tdouble fRmz;\n" diff --git a/sc/source/core/opencl/op_financial.cxx b/sc/source/core/opencl/op_financial.cxx index 5ae04ff..da4845c 100644 --- a/sc/source/core/opencl/op_financial.cxx +++ b/sc/source/core/opencl/op_financial.cxx @@ -21,6 +21,8 @@ using namespace formula; namespace sc { namespace opencl { +// Definitions of inline functions +#include "opinlinefun_finacial.cxx" void RRI::GenSlidingWindowFunction( std::stringstream &ss, const std::string sSymName, SubArguments &vSubArguments) @@ -2513,6 +2515,13 @@ void O