remove the framebuffer rendering

Change-Id: I2510a00b24a6a3c045a6ee2ccb21c022d3404000
This commit is contained in:
Markus Mohrhard
2014-06-01 03:46:58 +02:00
parent 43de2fa02b
commit df48d00ffb
3 changed files with 0 additions and 157 deletions

View File

@@ -1189,7 +1189,6 @@ void DummyChart::render()
#else
DummyXShapes::render();
#endif
m_GLRender.renderToBitmap();
}
void DummyChart::clear()

View File

@@ -116,15 +116,6 @@ GLfloat texCoords[] = {
int OpenGLRender::InitOpenGL()
{
//TODO: moggi: get the information from the context
mbArbMultisampleSupported = true;
if (glewIsSupported("framebuffer_object") != GLEW_OK)
{
SAL_WARN("chart2.opengl", "GL stack has no framebuffer support");
return -1;
}
glEnable(GL_TEXTURE_2D);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
@@ -344,28 +335,6 @@ void OpenGLRender::renderDebug()
void OpenGLRender::prepareToRender()
{
glViewport(0, 0, m_iWidth, m_iHeight);
if (!m_FboID[0])
{
// create a texture object
CreateTextureObj(m_iWidth, m_iHeight);
//create render buffer object
CreateRenderObj(m_iWidth, m_iHeight);
//create fbo
CreateFrameBufferObj();
if (mbArbMultisampleSupported)
{
CreateMultiSampleFrameBufObj();
}
}
//bind fbo
if (mbArbMultisampleSupported)
{
glBindFramebuffer(GL_FRAMEBUFFER,m_frameBufferMS);
}
else
{
glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[0]);
}
// Clear the screen
glClearDepth(1.0f);
@@ -373,43 +342,6 @@ void OpenGLRender::prepareToRender()
m_fZStep = 0;
}
void OpenGLRender::renderToBitmap()
{
}
int OpenGLRender::CreateTextureObj(int width, int height)
{
glGenTextures(2, m_TextureObj);
for (int i = 0; i < 2; i++)
{
glBindTexture(GL_TEXTURE_2D, m_TextureObj[i]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
CHECK_GL_ERROR();
glBindTexture(GL_TEXTURE_2D, 0);
}
return 0;
}
int OpenGLRender::CreateRenderObj(int width, int height)
{
glGenRenderbuffers(2, m_RboID);
for (int i = 0; i < 2; i++)
{
CHECK_GL_ERROR();
glBindRenderbuffer(GL_RENDERBUFFER, m_RboID[i]);
CHECK_GL_ERROR();
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, width, height);
CHECK_GL_ERROR();
glBindRenderbuffer(GL_RENDERBUFFER, 0);
CHECK_GL_ERROR();
}
return 0;
}
int OpenGLRender::MoveModelf(PosVecf3 trans, PosVecf3 angle, PosVecf3 scale)
{
glm::mat4 aTranslationMatrix = glm::translate(glm::vec3(trans.x, trans.y, trans.z));
@@ -419,29 +351,6 @@ int OpenGLRender::MoveModelf(PosVecf3 trans, PosVecf3 angle, PosVecf3 scale)
return 0;
}
int OpenGLRender::CreateFrameBufferObj()
{
// create a framebuffer object, you need to delete them when program exits.
glGenFramebuffers(2, m_FboID);
glCheckFramebufferStatus(GL_FRAMEBUFFER);
for (int i = 0; i < 2; i++)
{
glBindFramebuffer(GL_FRAMEBUFFER, m_FboID[i]);
glBindTexture(GL_TEXTURE_2D, m_TextureObj[i]);
// attach a texture to FBO color attachement point
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_TextureObj[i], 0);
glCheckFramebufferStatus(GL_FRAMEBUFFER);
glBindTexture(GL_TEXTURE_2D, 0);
// attach a renderbuffer to depth attachment point
glBindRenderbuffer(GL_RENDERBUFFER, m_RboID[i]);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, m_RboID[i]);
glCheckFramebufferStatus(GL_FRAMEBUFFER);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
}
return 0;
}
void OpenGLRender::Release()
{
glDeleteBuffers(1, &m_VertexBuffer);
@@ -451,12 +360,6 @@ void OpenGLRender::Release()
glDeleteProgram(m_TextProID);
glDeleteProgram(m_BackgroundProID);
glDeleteProgram(m_SymbolProID);
glDeleteFramebuffers(2, m_FboID);
glDeleteFramebuffers(1, &m_frameBufferMS);
glDeleteTextures(2, m_TextureObj);
glDeleteRenderbuffers(2, m_RboID);
glDeleteRenderbuffers(1, &m_renderBufferColorMS);
glDeleteRenderbuffers(1, &m_renderBufferDepthMS);
}
OpenGLRender::OpenGLRender()
@@ -468,18 +371,8 @@ OpenGLRender::OpenGLRender()
, m_MatrixID(0)
, m_RenderVertexBuf(0)
, m_RenderTexCoordBuf(0)
#if 0
, m_iPointNum(0)
#endif
, m_fLineWidth(0.001f)
, mbArbMultisampleSupported(false)
#if defined( _WIN32 )
, m_iArbMultisampleFormat(0)
#endif
, m_2DColor(glm::vec4(1.0, 0.0, 0.0, 1.0))
, m_frameBufferMS(0)
, m_renderBufferColorMS(0)
, m_renderBufferDepthMS(0)
, m_CommonProID(0)
, m_2DVertexID(0)
, m_2DColorID(0)
@@ -502,12 +395,6 @@ OpenGLRender::OpenGLRender()
{
//TODO: moggi: use STL
memset(&m_Line2DPointList, 0, sizeof(Line2DPointList));
m_FboID[0] = 0;
m_FboID[1] = 0;
m_TextureObj[0] = 0;
m_TextureObj[1] = 0;
m_RboID[0] = 0;
m_RboID[1] = 0;
memset(&m_Bubble2DCircle, 0, sizeof(m_Bubble2DCircle));
@@ -582,27 +469,6 @@ void OpenGLRender::SetColor(sal_uInt32 color, sal_uInt8 nAlpha)
m_2DColor = glm::vec4((float)r / 255.0f, (float)g / 255.0f, (float)b / 255.0f, nAlpha/ 255.f);
}
int OpenGLRender::CreateMultiSampleFrameBufObj()
{
glGenFramebuffers(1, &m_frameBufferMS);
glBindFramebuffer(GL_FRAMEBUFFER, m_frameBufferMS);
glGenRenderbuffers(1, &m_renderBufferColorMS);
glBindRenderbuffer(GL_RENDERBUFFER, m_renderBufferColorMS);
glRenderbufferStorageMultisample(GL_RENDERBUFFER, 8, GL_RGB, m_iWidth, m_iHeight);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_renderBufferColorMS);
glGenRenderbuffers(1, &m_renderBufferDepthMS);
glBindRenderbuffer(GL_RENDERBUFFER, m_renderBufferDepthMS);
glRenderbufferStorageMultisample(GL_RENDERBUFFER, 8, GL_DEPTH_COMPONENT24, m_iWidth, m_iHeight);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, m_renderBufferDepthMS);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
return 0;
}
int OpenGLRender::Create2DCircle(int detail)
{
float angle;

View File

@@ -92,7 +92,6 @@ public:
int RenderBubble2FBO(int wholeFlag);
void prepareToRender();
void renderToBitmap();
int RenderRectangleShape(bool bBorder, bool bFill);
int RectangleShapePoint(float x, float y, float directionX, float directionY);
@@ -134,10 +133,6 @@ private:
int m_iHeight;
private:
int CreateTextureObj(int width, int height);
int CreateRenderObj(int width, int height);
int CreateFrameBufferObj();
int CreateMultiSampleFrameBufObj();
int Create2DCircle(int detail);
private:
// Projection matrix : default 45 degree Field of View, 4:3 ratio, display range : 0.1 unit <-> 100 units
@@ -169,30 +164,13 @@ private:
GLuint m_RenderTexCoordBuf;
GLuint m_TextureObj[2];
GLuint m_FboID[2];
GLuint m_RboID[2];
#if 0
int m_iPointNum;
#endif
Line2DPointList m_Line2DPointList;
float m_fLineWidth;
std::list <Line2DPointList> m_Line2DShapePointList;
bool mbArbMultisampleSupported;
#if defined( _WIN32 )
int m_iArbMultisampleFormat;
#endif
glm::vec4 m_2DColor;
GLuint m_frameBufferMS;
GLuint m_renderBufferColorMS;
GLuint m_renderBufferDepthMS;
Bubble2DCircle m_Bubble2DCircle;