[Libreoffice-commits] core.git: Branch 'private/moggi/chart-opengl-work' - 5 commits - chart2/source
Markus Mohrhard
markus.mohrhard at collabora.co.uk
Sun Jan 12 09:26:54 PST 2014
chart2/source/view/main/OpenGLRender.cxx | 27 +++++++++++++--------------
chart2/source/view/main/OpenGLRender.hxx | 2 --
2 files changed, 13 insertions(+), 16 deletions(-)
New commits:
commit 66efa731ff32d4ccd0769bf2a0e1345d5addea18
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Sun Jan 12 18:23:35 2014 +0100
try to use orthographic projection
Change-Id: I6e0baf23cea7d1883ca910ee13819ea58bbf7695
diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx
index e57666c..e7de497 100644
--- a/chart2/source/view/main/OpenGLRender.cxx
+++ b/chart2/source/view/main/OpenGLRender.cxx
@@ -424,7 +424,7 @@ int OpenGLRender::InitOpenGL(GLWindow aWindow)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//Init the Projection matrix
- m_Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.0f);
+ m_Projection = glm::ortho(0.f, float(m_iWidth), 0.f, float(m_iHeight), -1.f, 1.f);
m_View = glm::lookAt(glm::vec3(0,0,1), // Camera is at (4,3,-3), in World Space
glm::vec3(0,0,0), // and looks at the origin
glm::vec3(0,1,0) // Head is up (set to 0,-1,0 to look upside-down)
@@ -540,8 +540,8 @@ int OpenGLRender::SetLine2DShapePoint(float x, float y, int listLength)
{
m_Line2DPointList.reserve(listLength*3);
}
- float actualX = (x / OPENGL_SCALE_VALUE) - ((float)m_iWidth / 2);
- float actualY = (y / OPENGL_SCALE_VALUE) - ((float)m_iHeight / 2);
+ float actualX = (x / OPENGL_SCALE_VALUE);
+ float actualY = (y / OPENGL_SCALE_VALUE);
m_Line2DPointList.push_back(actualX);
m_Line2DPointList.push_back(actualY);
m_Line2DPointList.push_back(m_fZStep);
@@ -568,6 +568,7 @@ int OpenGLRender::RenderLine2FBO(int)
PosVecf3 angle = {0.0f, 0.0f, 0.0f};
PosVecf3 scale = {1.0f, 1.0f, 1.0f};
MoveModelf(trans, angle, scale);
+ m_Projection = glm::ortho(0.f, float(m_iWidth), 0.f, float(m_iHeight), -1.f, 1.f);
m_MVP = m_Projection * m_View * m_Model;
for (size_t i = 0; i < listNum; i++)
{
commit 695908337e5063bf02e213668a10adac50e9b8d3
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Sun Jan 12 18:22:16 2014 +0100
only use one variable for alpha
It was confusing and in some places we already used the wrong variable.
Change-Id: Ib3a0f0e500530be0b502301233e5e853abe9f889
diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx
index 963ef2b..e57666c 100644
--- a/chart2/source/view/main/OpenGLRender.cxx
+++ b/chart2/source/view/main/OpenGLRender.cxx
@@ -881,7 +881,6 @@ OpenGLRender::OpenGLRender(uno::Reference< drawing::XShape > xTarget):
m_RboID(0),
m_iWidth(0),
m_iHeight(0),
- m_fLineAlpha(1.0),
mxRenderTarget(xTarget),
mbArbMultisampleSupported(false),
m_TextVertexID(0),
@@ -963,7 +962,7 @@ int OpenGLRender::CreateBMPHeader(sal_uInt8 *bmpHeader, int xsize, int ysize)
void OpenGLRender::SetLine2DColor(sal_uInt8 r, sal_uInt8 g, sal_uInt8 b)
{
- m_Line2DColor = glm::vec4((float)r / 255.0f, (float)g / 255.0f, (float)b / 255.0f, m_fLineAlpha);
+ m_Line2DColor = glm::vec4((float)r / 255.0f, (float)g / 255.0f, (float)b / 255.0f, m_fAlpha);
}
void OpenGLRender::SetLine2DWidth(int width)
@@ -1180,7 +1179,7 @@ void OpenGLRender::SetColor(sal_uInt32 color)
sal_uInt8 r = (color & 0x00FF0000) >> 16;
sal_uInt8 g = (color & 0x0000FF00) >> 8;
sal_uInt8 b = (color & 0x000000FF);
- m_2DColor = glm::vec4((float)r / 255.0f, (float)g / 255.0f, (float)b / 255.0f, m_fLineAlpha);
+ m_2DColor = glm::vec4((float)r / 255.0f, (float)g / 255.0f, (float)b / 255.0f, m_fAlpha);
}
int OpenGLRender::CreateMultiSampleFrameBufObj()
diff --git a/chart2/source/view/main/OpenGLRender.hxx b/chart2/source/view/main/OpenGLRender.hxx
index 65c0b91..9dd0777 100644
--- a/chart2/source/view/main/OpenGLRender.hxx
+++ b/chart2/source/view/main/OpenGLRender.hxx
@@ -259,8 +259,6 @@ private:
float m_fLineWidth;
- float m_fLineAlpha;
-
std::list <Line2DPointList> m_Line2DShapePointList;
com::sun::star::uno::Reference< com::sun::star::drawing::XShape > mxRenderTarget;
commit 378f64064ca522cebe554c82ba723293dba410b9
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Sun Jan 12 18:21:32 2014 +0100
a bit more clean-up
Change-Id: Ib6a3ef54fdd7b0582b691ae5e4d2ff998bd17b54
diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx
index 4814b7c..963ef2b 100644
--- a/chart2/source/view/main/OpenGLRender.cxx
+++ b/chart2/source/view/main/OpenGLRender.cxx
@@ -538,7 +538,7 @@ int OpenGLRender::SetLine2DShapePoint(float x, float y, int listLength)
{
if (m_Line2DPointList.empty())
{
- m_Line2DPointList.reserve(listLength);
+ m_Line2DPointList.reserve(listLength*3);
}
float actualX = (x / OPENGL_SCALE_VALUE) - ((float)m_iWidth / 2);
float actualY = (y / OPENGL_SCALE_VALUE) - ((float)m_iHeight / 2);
@@ -592,7 +592,7 @@ int OpenGLRender::RenderLine2FBO(int)
glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer);
CHECK_GL_ERROR();
glVertexAttribPointer(
- m_2DVertexID, // attribute. No particular reason for 0, but must match the layout in the shader.
+ m_2DVertexID,
3, // size
GL_FLOAT, // type
GL_FALSE, // normalized?
@@ -616,9 +616,6 @@ int OpenGLRender::RenderLine2FBO(int)
void OpenGLRender::prepareToRender()
{
glViewport(0, 0, m_iWidth, m_iHeight);
- glClearDepth(1.0f);
- // Clear the screen
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if (!m_FboID)
{
// create a texture object
@@ -643,7 +640,9 @@ void OpenGLRender::prepareToRender()
}
// Clear the screen
+ glClearDepth(1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ m_fZStep = 0;
}
void OpenGLRender::renderToBitmap()
@@ -667,8 +666,8 @@ void OpenGLRender::renderToBitmap()
glBlitFramebuffer(0, 0 ,m_iWidth, m_iHeight, 0, 0,m_iWidth ,m_iHeight, GL_COLOR_BUFFER_BIT, GL_LINEAR);
glBindFramebuffer(GL_READ_FRAMEBUFFER,0);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER,0);
- glBindFramebuffer(GL_FRAMEBUFFER, m_FboID);
}
+ glBindFramebuffer(GL_FRAMEBUFFER, m_FboID);
#if RENDER_TO_FILE
char fileName[256] = {0};
commit a2934ecce37e27a9f99934521d6051aaf3e16133
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Sun Jan 12 18:20:21 2014 +0100
fix size of graphic
Change-Id: I2317083eca1034fe1d69b8716304c9f6d5cf5067
diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx
index f5ef950..4814b7c 100644
--- a/chart2/source/view/main/OpenGLRender.cxx
+++ b/chart2/source/view/main/OpenGLRender.cxx
@@ -685,7 +685,7 @@ void OpenGLRender::renderToBitmap()
uno::Reference< awt::XBitmap> xBmp( aGraphic.GetXGraphic(), uno::UNO_QUERY );
uno::Reference < beans::XPropertySet > xPropSet ( mxRenderTarget, uno::UNO_QUERY );
xPropSet->setPropertyValue("Graphic", uno::makeAny(aGraphic.GetXGraphic()));
- mxRenderTarget->setSize(awt::Size(m_iWidth, m_iHeight));
+ mxRenderTarget->setSize(awt::Size(m_iWidth*OPENGL_SCALE_VALUE, m_iHeight*OPENGL_SCALE_VALUE));
mxRenderTarget->setPosition(awt::Point(0,0));
#endif
glBindFramebuffer(GL_FRAMEBUFFER, 0);
commit 9fbff8b9157e622d375d769bf32703e74777a473
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Sun Jan 12 18:18:02 2014 +0100
don't render to the file
Change-Id: I8cf4b25c84564c0cb3195c5b63d0dde6d78d7080
diff --git a/chart2/source/view/main/OpenGLRender.cxx b/chart2/source/view/main/OpenGLRender.cxx
index f81e94c..f5ef950 100644
--- a/chart2/source/view/main/OpenGLRender.cxx
+++ b/chart2/source/view/main/OpenGLRender.cxx
@@ -44,7 +44,7 @@ using namespace com::sun::star;
using namespace std;
-#define RENDER_TO_FILE 1
+#define RENDER_TO_FILE 0
#define DEBUG_PNG 1
#define BMP_HEADER_LEN 54
More information about the Libreoffice-commits
mailing list