diff options
author | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-05-21 14:23:07 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-05-21 14:24:09 +0200 |
commit | 2bbcf97eb35b98da33f3aaba67cd7abc1a265c69 (patch) | |
tree | 2a58d363ed4db9a3eda10cb6dca75d479c3dcead /chart2 | |
parent | b8e8c9c471ba6974886dd624630144ef2edccb2c (diff) |
fix my issues with the offscreen rendering
Change-Id: I4a2ed8a20890119220d63a6768f13365a7b5f97d
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/view/charttypes/GL3DBarChart.cxx | 4 | ||||
-rw-r--r-- | chart2/source/view/inc/GL3DRenderer.hxx | 4 | ||||
-rw-r--r-- | chart2/source/view/main/GL3DRenderer.cxx | 9 |
3 files changed, 10 insertions, 7 deletions
diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index d36a00869cd8..5e21945e63dc 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -221,11 +221,11 @@ void GL3DBarChart::clickedAt(const Point& rPos) { sal_uInt32 nId = 1; { - PickingModeSetter(mpRenderer.get()); + PickingModeSetter aPickingModeSetter(mpRenderer.get()); render(); nId = mpRenderer->GetPixelColorFromPoint(rPos.X(), rPos.Y()); } - if (mpCamera) + if (mpCamera && nId != COL_WHITE) mpCamera->zoom(nId); } diff --git a/chart2/source/view/inc/GL3DRenderer.hxx b/chart2/source/view/inc/GL3DRenderer.hxx index b08e90e22ae6..c2d7b87c648a 100644 --- a/chart2/source/view/inc/GL3DRenderer.hxx +++ b/chart2/source/view/inc/GL3DRenderer.hxx @@ -366,8 +366,8 @@ private: SceneBox m_SenceBox; GLuint mnPickingFbo; - GLuint mnPickingRbo; - GLuint mnPickingTexture; + GLuint mnPickingRboDepth; + GLuint mnPickingRboColor; }; } diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx index cf75ea63e188..d2480163b931 100644 --- a/chart2/source/view/main/GL3DRenderer.cxx +++ b/chart2/source/view/main/GL3DRenderer.cxx @@ -112,8 +112,8 @@ OpenGL3DRenderer::~OpenGL3DRenderer() glDeleteBuffers(1, &m_VertexBuffer); glDeleteFramebuffers(1, &mnPickingFbo); - glDeleteRenderbuffers(1, &mnPickingRbo); - glDeleteTextures(1, &mnPickingTexture); + glDeleteRenderbuffers(1, &mnPickingRboDepth); + glDeleteRenderbuffers(1, &mnPickingRboColor); } void OpenGL3DRenderer::ShaderResources::LoadShaders() @@ -253,7 +253,7 @@ void OpenGL3DRenderer::init() glBufferData(GL_ARRAY_BUFFER, sizeof(squareVertices), squareVertices, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); - OpenGLHelper::createFramebuffer(m_iWidth, m_iHeight, mnPickingFbo, mnPickingRbo, mnPickingTexture); + OpenGLHelper::createFramebuffer(m_iWidth, m_iHeight, mnPickingFbo, mnPickingRboDepth, mnPickingRboColor); CHECK_GL_ERROR(); Init3DUniformBlock(); @@ -1601,6 +1601,9 @@ sal_uInt32 OpenGL3DRenderer::GetPixelColorFromPoint(long nX, long nY) boost::scoped_array<sal_uInt8> buf(new sal_uInt8[4]); glReadPixels(nX, nY, 1, 1, GL_BGRA, GL_UNSIGNED_BYTE, buf.get()); Color aColor(buf[3], buf[2], buf[1], buf[0]); + static sal_Int32 i = 0; + OUString aFileName = OUString("/home/moggi/Documents/work/shader") + OUString::number(i) + ".png"; + OpenGLHelper::renderToFile(m_iWidth, m_iHeight, aFileName); return aColor.GetColor(); } |