Explorar el Código

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 hace 12 años
padre
commit
4fa458d653
Se han modificado 2 ficheros con 17 adiciones y 5 borrados
  1. +15
    -5
      src/gpu/framebuffer.cpp
  2. +2
    -0
      src/gpu/vertexbuffer.cpp

+ 15
- 5
src/gpu/framebuffer.cpp Ver fichero

@@ -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 Ver fichero

@@ -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)
{


Cargando…
Cancelar
Guardar