| @@ -109,7 +109,7 @@ void DebugQuad::TickDraw(float deltams) | |||||
| data->image[0][(j * 32 + i) * 4 + 0] = wb; | data->image[0][(j * 32 + i) * 4 + 0] = wb; | ||||
| data->image[0][(j * 32 + i) * 4 + 1] = wb; | data->image[0][(j * 32 + i) * 4 + 1] = wb; | ||||
| data->image[0][(j * 32 + i) * 4 + 2] = wb; | data->image[0][(j * 32 + i) * 4 + 2] = wb; | ||||
| data->image[0][(j * 32 + i) * 4 + 3] = wb; | |||||
| data->image[0][(j * 32 + i) * 4 + 3] = 0xff; | |||||
| } | } | ||||
| /* Use GL_RGBA instead of 4 for the internal format (Android) */ | /* Use GL_RGBA instead of 4 for the internal format (Android) */ | ||||
| glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 32, 32, 0, | glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 32, 32, 0, | ||||
| @@ -154,6 +154,7 @@ void DebugQuad::TickDraw(float deltams) | |||||
| "}"); | "}"); | ||||
| /* Quad #6: apply texture in fragment shader */ | /* Quad #6: apply texture in fragment shader */ | ||||
| /* Quad #8: vertex buffer, apply texture in fragment shader */ | |||||
| data->shader[2] = Shader::Create( | data->shader[2] = Shader::Create( | ||||
| "void main()" | "void main()" | ||||
| "{" | "{" | ||||
| @@ -264,6 +265,8 @@ void DebugQuad::TickDraw(float deltams) | |||||
| glBufferData(GL_ARRAY_BUFFER, 12 * sizeof(GLfloat), tcs, GL_STATIC_DRAW); | glBufferData(GL_ARRAY_BUFFER, 12 * sizeof(GLfloat), tcs, GL_STATIC_DRAW); | ||||
| glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, 0); | glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, 0); | ||||
| glBindBuffer(GL_ARRAY_BUFFER, 0); | |||||
| glDrawArrays(GL_TRIANGLES, 0, 6); | glDrawArrays(GL_TRIANGLES, 0, 6); | ||||
| glDisableVertexAttribArray(attr_pos); | glDisableVertexAttribArray(attr_pos); | ||||
| @@ -277,6 +280,7 @@ void DebugQuad::TickDraw(float deltams) | |||||
| glMatrixMode(GL_MODELVIEW); | glMatrixMode(GL_MODELVIEW); | ||||
| glLoadIdentity(); | glLoadIdentity(); | ||||
| glDisable(GL_TEXTURE_2D); | glDisable(GL_TEXTURE_2D); | ||||
| glBindBuffer(GL_ARRAY_BUFFER, 0); | |||||
| glUseProgram(0); | glUseProgram(0); | ||||
| /* Prepare our quad coordinates */ | /* Prepare our quad coordinates */ | ||||
| @@ -343,6 +347,7 @@ void DebugQuad::TickDraw(float deltams) | |||||
| glTexCoord2f(f1, f3); | glTexCoord2f(f1, f3); | ||||
| glVertex3f(data->aa.x, data->bb.y, 0.0f); | glVertex3f(data->aa.x, data->bb.y, 0.0f); | ||||
| glEnd(); | glEnd(); | ||||
| glDisable(GL_TEXTURE_2D); | |||||
| Advance(); | Advance(); | ||||
| @@ -405,6 +410,51 @@ void DebugQuad::TickDraw(float deltams) | |||||
| glVertex3f(data->aa.x, data->bb.y, 0.0f); | glVertex3f(data->aa.x, data->bb.y, 0.0f); | ||||
| glEnd(); | glEnd(); | ||||
| glUseProgram(0); | glUseProgram(0); | ||||
| glDisable(GL_TEXTURE_2D); | |||||
| Advance(); | |||||
| /* Quad #7: simple vertex buffer */ | |||||
| GLfloat const v1[] = { data->aa.x, data->bb.y, 0.0f, | |||||
| data->bb.x, data->bb.y, 0.0f, | |||||
| data->bb.x, data->aa.y, 0.0f, | |||||
| data->bb.x, data->aa.y, 0.0f, | |||||
| data->aa.x, data->aa.y, 0.0f, | |||||
| data->aa.x, data->bb.y, 0.0f }; | |||||
| GLfloat const c1[] = { f1, f2, f3, f4, f2, f1, f3, f1, f4, | |||||
| f3, f1, f4, f4, f3, f2, f1, f2, f3 }; | |||||
| glEnableClientState(GL_COLOR_ARRAY); | |||||
| glEnableClientState(GL_VERTEX_ARRAY); | |||||
| glColorPointer(3, GL_FLOAT, 0, c1); | |||||
| glVertexPointer(3, GL_FLOAT, 0, v1); | |||||
| glDrawArrays(GL_TRIANGLES, 0, 6); | |||||
| glDisableClientState(GL_VERTEX_ARRAY); | |||||
| glDisableClientState(GL_COLOR_ARRAY); | |||||
| Advance(); | |||||
| /* Quad #8: vertex buffer, apply texture in fragment shader */ | |||||
| data->shader[2]->Bind(); | |||||
| GLfloat const v2[] = { data->aa.x, data->bb.y, 0.0f, | |||||
| data->bb.x, data->bb.y, 0.0f, | |||||
| data->bb.x, data->aa.y, 0.0f, | |||||
| data->bb.x, data->aa.y, 0.0f, | |||||
| data->aa.x, data->aa.y, 0.0f, | |||||
| data->aa.x, data->bb.y, 0.0f }; | |||||
| GLfloat const t2[] = { f1, f3, f3, f2, f2, f4, f2, f4, f4, f1, f1, f3 }; | |||||
| glEnableClientState(GL_TEXTURE_COORD_ARRAY); | |||||
| glEnableClientState(GL_VERTEX_ARRAY); | |||||
| glTexCoordPointer(2, GL_FLOAT, 0, t2); | |||||
| glVertexPointer(3, GL_FLOAT, 0, v2); | |||||
| glDrawArrays(GL_TRIANGLES, 0, 6); | |||||
| glDisableClientState(GL_VERTEX_ARRAY); | |||||
| glDisableClientState(GL_TEXTURE_COORD_ARRAY); | |||||
| Advance(); | Advance(); | ||||