diff options
author | Stephane Marchesin <stephane.marchesin@gmail.com> | 2010-04-19 23:10:09 -0700 |
---|---|---|
committer | Stephane Marchesin <stephane.marchesin@gmail.com> | 2010-04-19 23:10:09 -0700 |
commit | 6faed5ac6aa38503a7dcf65fd66593f79d61d00c (patch) | |
tree | a71b613fa3b68b6b8543fcb0844f82c6c9f89341 | |
parent | 305e303f0bf52a8594d7aea98110fbf7744ceb07 (diff) |
GL: make nv30 happy by using rect textures.
-rw-r--r-- | render-gl.c | 23 |
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(); |