summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-05-21 14:23:07 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-05-21 14:24:09 +0200
commit2bbcf97eb35b98da33f3aaba67cd7abc1a265c69 (patch)
tree2a58d363ed4db9a3eda10cb6dca75d479c3dcead /chart2
parentb8e8c9c471ba6974886dd624630144ef2edccb2c (diff)
fix my issues with the offscreen rendering
Change-Id: I4a2ed8a20890119220d63a6768f13365a7b5f97d
Diffstat (limited to 'chart2')
-rw-r--r--chart2/source/view/charttypes/GL3DBarChart.cxx4
-rw-r--r--chart2/source/view/inc/GL3DRenderer.hxx4
-rw-r--r--chart2/source/view/main/GL3DRenderer.cxx9
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();
}