Browse Source

gpu: disable framebuffer objects on GL ES for now, and disable integer

attributes if GL version isn't 3.0 at least.
legacy
Sam Hocevar sam 12 years ago
parent
commit
4fa458d653
2 changed files with 17 additions and 5 deletions
  1. +15
    -5
      src/gpu/framebuffer.cpp
  2. +2
    -0
      src/gpu/vertexbuffer.cpp

+ 15
- 5
src/gpu/framebuffer.cpp View File

@@ -60,7 +60,8 @@ FrameBuffer::FrameBuffer(ivec2 size)
{
m_data->m_size = size;
#if defined USE_D3D9 || defined _XBOX
#elif !defined __CELLOS_LV2__ && !defined __ANDROID__
/* FIXME: not implemented on Direct3D */
#elif GL_VERSION_1_1
GLenum format = GL_RGBA8;
GLenum depth = GL_DEPTH_COMPONENT;
GLenum wrapmode = GL_REPEAT;
@@ -93,17 +94,21 @@ FrameBuffer::FrameBuffer(ivec2 size)
glCheckFramebufferStatus(GL_FRAMEBUFFER);

Unbind();
#else
/* FIXME: not implemented on GL ES, see
* http://stackoverflow.com/q/4041682/111461 */
#endif
}

FrameBuffer::~FrameBuffer()
{
#if defined USE_D3D9 || defined _XBOX
#elif !defined __CELLOS_LV2__ && !defined __ANDROID__
#elif GL_VERSION_1_1
glDeleteFramebuffers(1, &m_data->m_fbo);
glDeleteTextures(1, &m_data->m_texture);
if (m_data->m_depth != GL_INVALID_INDEX)
glDeleteRenderbuffers(1, &m_data->m_depth);
#else
#endif
delete m_data;
}
@@ -111,24 +116,29 @@ FrameBuffer::~FrameBuffer()
int FrameBuffer::GetTexture() const
{
#if defined USE_D3D9 || defined _XBOX
#elif !defined __CELLOS_LV2__ && !defined __ANDROID__
return 0;
#elif GL_VERSION_1_1
return m_data->m_texture;
#else
return 0;
#endif
}

void FrameBuffer::Bind()
{
#if defined USE_D3D9 || defined _XBOX
#elif !defined __CELLOS_LV2__ && !defined __ANDROID__
#elif GL_VERSION_1_1
glBindFramebuffer(GL_FRAMEBUFFER, m_data->m_fbo);
#else
#endif
}

void FrameBuffer::Unbind()
{
#if defined USE_D3D9 || defined _XBOX
#elif !defined __CELLOS_LV2__ && !defined __ANDROID__
#elif GL_VERSION_1_1
glBindFramebuffer(GL_FRAMEBUFFER, NULL);
#else
#endif
}



+ 2
- 0
src/gpu/vertexbuffer.cpp View File

@@ -385,12 +385,14 @@ void VertexDeclaration::SetStream(VertexBuffer *vb, ShaderAttrib attr1,
tlut[type_index].type, normalize,
stride, (GLvoid const *)(uintptr_t)offset);
}
# if defined GL_VERSION_3_0
else
{
glVertexAttribIPointer((GLint)reg, tlut[type_index].size,
tlut[type_index].type,
stride, (GLvoid const *)(uintptr_t)offset);
}
# endif
# else
switch (usage)
{


Loading…
Cancel
Save