GRAPHICS: Remove duplicate EBO [OpenGLS]

This commit is contained in:
Dries Harnie 2014-01-14 00:26:44 +01:00
parent f4626819ce
commit 583eafc2d6
2 changed files with 5 additions and 13 deletions

View file

@ -80,8 +80,6 @@ static float textured_quad_centered[] = {
+0.5f, -0.5f, 0.0f, 1.0f, 1.0f, +0.5f, -0.5f, 0.0f, 1.0f, 1.0f,
}; };
static unsigned short quad_indices[] = { 0, 1, 2, 0, 2, 3};
static float zero_texVerts[] = { 0.0, 0.0 }; static float zero_texVerts[] = { 0.0, 0.0 };
struct GrimVertex { struct GrimVertex {
@ -212,7 +210,7 @@ void GfxOpenGLS::setupZBuffer() {
_zBufTexCrop = Math::Vector2d(width / nextHigher2((int)width), height / nextHigher2((int)height)); _zBufTexCrop = Math::Vector2d(width / nextHigher2((int)width), height / nextHigher2((int)height));
} }
void GfxOpenGLS::setupBigEBO() { void GfxOpenGLS::setupQuadEBO() {
// FIXME: Probably way too big... // FIXME: Probably way too big...
unsigned short quad_indices[6 * 1000]; unsigned short quad_indices[6 * 1000];
@ -224,10 +222,6 @@ void GfxOpenGLS::setupBigEBO() {
p[5] = start++; p[5] = start++;
} }
_bigQuadEBO = Graphics::Shader::createBuffer(GL_ELEMENT_ARRAY_BUFFER, sizeof(quad_indices), quad_indices, GL_STATIC_DRAW);
}
void GfxOpenGLS::setupQuadEBO() {
_quadEBO = Graphics::Shader::createBuffer(GL_ELEMENT_ARRAY_BUFFER, sizeof(quad_indices), quad_indices, GL_STATIC_DRAW); _quadEBO = Graphics::Shader::createBuffer(GL_ELEMENT_ARRAY_BUFFER, sizeof(quad_indices), quad_indices, GL_STATIC_DRAW);
} }
@ -285,7 +279,6 @@ void GfxOpenGLS::setupShaders() {
static const char* primAttributes[] = {"position", NULL}; static const char* primAttributes[] = {"position", NULL};
_primitiveProgram = Graphics::Shader::fromFiles("grim_primitive", primAttributes); _primitiveProgram = Graphics::Shader::fromFiles("grim_primitive", primAttributes);
setupBigEBO();
setupQuadEBO(); setupQuadEBO();
setupTexturedQuad(); setupTexturedQuad();
setupTexturedCenteredQuad(); setupTexturedCenteredQuad();
@ -832,7 +825,7 @@ void GfxOpenGLS::drawBitmap(const Bitmap *bitmap, int dx, int dy, uint32 layer)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
shader->use(); shader->use();
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _bigQuadEBO); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _quadEBO);
uint32 offset = data->_layers[layer]._offset; uint32 offset = data->_layers[layer]._offset;
for (uint32 i = offset; i < offset + data->_layers[layer]._numImages; ++i) { for (uint32 i = offset; i < offset + data->_layers[layer]._numImages; ++i) {
glBindTexture(GL_TEXTURE_2D, textures[data->_verts[i]._texid]); glBindTexture(GL_TEXTURE_2D, textures[data->_verts[i]._texid]);
@ -1098,7 +1091,7 @@ void GfxOpenGLS::drawTextObject(const TextObject *text) {
float(td->color.getBlue()) / 255.0f); float(td->color.getBlue()) / 255.0f);
_textProgram->setUniform("color", colors); _textProgram->setUniform("color", colors);
glBindTexture(GL_TEXTURE_2D, td->texture); glBindTexture(GL_TEXTURE_2D, td->texture);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _bigQuadEBO); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _quadEBO);
glDrawElements(GL_TRIANGLES, td->characters * 6, GL_UNSIGNED_SHORT, 0); glDrawElements(GL_TRIANGLES, td->characters * 6, GL_UNSIGNED_SHORT, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);

View file

@ -214,7 +214,7 @@ private:
Graphics::Shader* _actorProgram; Graphics::Shader* _actorProgram;
Graphics::Shader* _spriteProgram; Graphics::Shader* _spriteProgram;
Graphics::Shader* _smushProgram; Graphics::Shader* _smushProgram;
GLuint _smushVBO, _quadEBO, _bigQuadEBO; GLuint _smushVBO, _quadEBO;
Graphics::Shader* _textProgram; Graphics::Shader* _textProgram;
Graphics::Shader* _primitiveProgram; Graphics::Shader* _primitiveProgram;
@ -223,7 +223,7 @@ private:
GLuint _smushTexId; GLuint _smushTexId;
bool _smushSwizzle; bool _smushSwizzle;
void setupTexturedQuad(); void setupTexturedQuad();
void setupBigEBO(); void setupQuadEBO();
void setupZBuffer(); void setupZBuffer();
void drawDepthBitmap(int x, int y, int w, int h, char *data); void drawDepthBitmap(int x, int y, int w, int h, char *data);
@ -236,7 +236,6 @@ private:
Math::Matrix4 _mvpMatrix; Math::Matrix4 _mvpMatrix;
void setupTexturedCenteredQuad(); void setupTexturedCenteredQuad();
void setupQuadEBO();
GLuint _spriteVBO; GLuint _spriteVBO;