Преглед на файлове

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 години
родител
ревизия
4fa458d653
променени са 2 файла, в които са добавени 17 реда и са изтрити 5 реда
  1. +15
    -5
      src/gpu/framebuffer.cpp
  2. +2
    -0
      src/gpu/vertexbuffer.cpp

+ 15
- 5
src/gpu/framebuffer.cpp Целия файл

@@ -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 Целия файл

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


Зареждане…
Отказ
Запис