summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Marchesin <stephane.marchesin@gmail.com>2010-04-19 23:10:09 -0700
committerStephane Marchesin <stephane.marchesin@gmail.com>2010-04-19 23:10:09 -0700
commit6faed5ac6aa38503a7dcf65fd66593f79d61d00c (patch)
treea71b613fa3b68b6b8543fcb0844f82c6c9f89341
parent305e303f0bf52a8594d7aea98110fbf7744ceb07 (diff)
GL: make nv30 happy by using rect textures.
-rw-r--r--render-gl.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/render-gl.c b/render-gl.c
index 1b676be..7f22f81 100644
--- a/render-gl.c
+++ b/render-gl.c
@@ -81,6 +81,7 @@ static void set_render_state(enum render_state render_state)
glEnable(GL_FRAGMENT_PROGRAM_ARB);
pglBindProgram(GL_FRAGMENT_PROGRAM_ARB, page_fragment_program);
glActiveTexture(GL_TEXTURE0);
+ glDisable(GL_TEXTURE_RECTANGLE_ARB);
glBindTexture(GL_TEXTURE_2D, atlas_texture);
glEnable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE1);
@@ -98,6 +99,7 @@ static void set_render_state(enum render_state render_state)
glEnable(GL_FRAGMENT_PROGRAM_ARB);
pglBindProgram(GL_FRAGMENT_PROGRAM_ARB, tile_fragment_program);
glActiveTexture(GL_TEXTURE0);
+ glDisable(GL_TEXTURE_RECTANGLE_ARB);
glBindTexture(GL_TEXTURE_2D, atlas_texture);
glEnable(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE1);
@@ -115,6 +117,7 @@ static void set_render_state(enum render_state render_state)
glDisable(GL_FRAGMENT_PROGRAM_ARB);
glActiveTexture(GL_TEXTURE0);
glDisable(GL_TEXTURE_2D);
+ glDisable(GL_TEXTURE_RECTANGLE_ARB);
glActiveTexture(GL_TEXTURE1);
glDisable(GL_TEXTURE_1D);
glActiveTexture(GL_TEXTURE2);
@@ -129,8 +132,8 @@ static void set_render_state(enum render_state render_state)
glDisable(GL_FRAGMENT_PROGRAM_ARB);
glColor3ub(255,255,255);
glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, render_tex);
- glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_RECTANGLE_ARB, render_tex);
+ glEnable(GL_TEXTURE_RECTANGLE_ARB);
glActiveTexture(GL_TEXTURE1);
glDisable(GL_TEXTURE_1D);
glActiveTexture(GL_TEXTURE2);
@@ -295,9 +298,9 @@ void render_end(void)
set_render_state(state_final);
glDisable(GL_CULL_FACE);
glBegin(GL_QUADS);
- glTexCoord2f(0.0, 1.0); glVertex2f(0.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex2f(320.0, 0.0);
- glTexCoord2f(1.0, 0.0); glVertex2f(320.0, 240.0);
+ glTexCoord2f(0.0, 240.0); glVertex2f(0.0, 0.0);
+ glTexCoord2f(320.0, 240.0); glVertex2f(320.0, 0.0);
+ glTexCoord2f(320.0, 0.0); glVertex2f(320.0, 240.0);
glTexCoord2f(0.0, 0.0); glVertex2f(0.0, 240.0);
glEnd();
}
@@ -585,11 +588,11 @@ void render_init(u32 pixel_size)
glGenTextures(1,&render_tex);
pglGenFramebuffers(1, &render_fb);
pglBindFramebuffer(GL_FRAMEBUFFER_EXT, render_fb);
- glBindTexture(GL_TEXTURE_2D, render_tex);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, 320, 240, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
- pglFramebufferTexture2D(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, render_tex, 0);
+ glBindTexture(GL_TEXTURE_RECTANGLE_ARB, render_tex);
+ glTexParameterf(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGB8, 320, 240, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
+ pglFramebufferTexture2D(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0, GL_TEXTURE_RECTANGLE_ARB, render_tex, 0);
error();