rendered paste body--- Renderer.c 2007-11-05 19:18:14.000000000 -0500
+++ Renderer.c 2007-11-05 12:37:14.165130500 -0500
@@ -5,6 +5,21 @@
#include <SDL/SDL.h>
#include <SDL/SDL_opengl.h>
+#ifdef _OS_WINDOWS_
+PFNGLACTIVETEXTUREARBPROC glActiveTextureARB = NULL;
+PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB = NULL;
+
+int InitARB() {
+ glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC) wglGetProcAddress( "glActiveTextureARB" );
+ glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC) wglGetProcAddress( "glMultiTexCoord2fARB" );
+ return (glActiveTextureARB && glMultiTexCoord2fARB);
+}
+#else
+int InitARB() {
+ return 1;
+}
+#endif
+
SDL_Surface *screen;
int InitRenderer(Renderer *renderer,char *palfile)
@@ -32,6 +47,10 @@
fprintf(stderr,"Unable to set video mode: %s\n",SDL_GetError());
return 0;
}
+
+ if(!InitARB()) {
+ fprintf(stderr,"Unable to initialize ARB extensions\n");
+ }
glClearColor(0,0,0,0);
glViewport(0,0,screen->w,screen->h);
@@ -201,9 +220,9 @@
{
MapTile *tile=&map->tiles[x+y*map->w];
- glActiveTexture(GL_TEXTURE0);
+ glActiveTextureARB(GL_TEXTURE0);
glDisable(GL_TEXTURE_2D);
- glActiveTexture(GL_TEXTURE1);
+ glActiveTextureARB(GL_TEXTURE1);
glDisable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
@@ -231,9 +250,9 @@
glEnd();
- glActiveTexture(GL_TEXTURE0);
+ glActiveTextureARB(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
- glActiveTexture(GL_TEXTURE1);
+ glActiveTextureARB(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
if(x>0)
@@ -248,18 +267,18 @@
float u=CalcTextureExtent(high,low);
int tex=AnimateTexture(tile->textures[0],game->frame);
- glActiveTexture(GL_TEXTURE0);
+ glActiveTextureARB(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D,renderer->textures[tex]);
- glActiveTexture(GL_TEXTURE1);
+ glActiveTextureARB(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D,renderer->lights[tex]);
glBegin(GL_QUADS);
glColor3f(c01,c01,c01);
- glTexCoord2f(0,1); glMultiTexCoord2f(GL_TEXTURE1,0,1); glVertex3i(x,low,y+1);
- glTexCoord2f(u,1); glMultiTexCoord2f(GL_TEXTURE1,u,1); glVertex3i(x,high,y+1);
+ glTexCoord2f(0,1); glMultiTexCoord2fARB(GL_TEXTURE1,0,1); glVertex3i(x,low,y+1);
+ glTexCoord2f(u,1); glMultiTexCoord2fARB(GL_TEXTURE1,u,1); glVertex3i(x,high,y+1);
glColor3f(c00,c00,c00);
- glTexCoord2f(u,0); glMultiTexCoord2f(GL_TEXTURE1,u,0); glVertex3i(x,high,y);
- glTexCoord2f(0,0); glMultiTexCoord2f(GL_TEXTURE1,0,0); glVertex3i(x,low,y);
+ glTexCoord2f(u,0); glMultiTexCoord2fARB(GL_TEXTURE1,u,0); glVertex3i(x,high,y);
+ glTexCoord2f(0,0); glMultiTexCoord2fARB(GL_TEXTURE1,0,0); glVertex3i(x,low,y);
glEnd();
}
@@ -271,18 +290,18 @@
float u=CalcTextureExtent(high,low);
int tex=AnimateTexture(tile->textures[2],game->frame);
- glActiveTexture(GL_TEXTURE0);
+ glActiveTextureARB(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D,renderer->textures[tex]);
- glActiveTexture(GL_TEXTURE1);
+ glActiveTextureARB(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D,renderer->lights[tex]);
glBegin(GL_QUADS);
glColor3f(c00,c00,c00);
- glTexCoord2f(0,0); glMultiTexCoord2f(GL_TEXTURE1,0,0); glVertex3i(x,high,y);
- glTexCoord2f(u,0); glMultiTexCoord2f(GL_TEXTURE1,u,0); glVertex3i(x,low,y);
+ glTexCoord2f(0,0); glMultiTexCoord2fARB(GL_TEXTURE1,0,0); glVertex3i(x,high,y);
+ glTexCoord2f(u,0); glMultiTexCoord2fARB(GL_TEXTURE1,u,0); glVertex3i(x,low,y);
glColor3f(c01,c01,c01);
- glTexCoord2f(u,1); glMultiTexCoord2f(GL_TEXTURE1,u,1); glVertex3i(x,low,y+1);
- glTexCoord2f(0,1); glMultiTexCoord2f(GL_TEXTURE1,0,1); glVertex3i(x,high,y+1);
+ glTexCoord2f(u,1); glMultiTexCoord2fARB(GL_TEXTURE1,u,1); glVertex3i(x,low,y+1);
+ glTexCoord2f(0,1); glMultiTexCoord2fARB(GL_TEXTURE1,0,1); glVertex3i(x,high,y+1);
glEnd();
}
}
@@ -299,18 +318,18 @@
float u=CalcTextureExtent(high,low);
int tex=AnimateTexture(tile->textures[1],game->frame);
- glActiveTexture(GL_TEXTURE0);
+ glActiveTextureARB(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D,renderer->textures[tex]);
- glActiveTexture(GL_TEXTURE1);
+ glActiveTextureARB(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D,renderer->lights[tex]);
glBegin(GL_QUADS);
glColor3f(c00,c00,c00);
- glTexCoord2f(0,0); glMultiTexCoord2f(GL_TEXTURE1,0,0); glVertex3i(x,low,y);
- glTexCoord2f(u,0); glMultiTexCoord2f(GL_TEXTURE1,u,0); glVertex3i(x,high,y);
+ glTexCoord2f(0,0); glMultiTexCoord2fARB(GL_TEXTURE1,0,0); glVertex3i(x,low,y);
+ glTexCoord2f(u,0); glMultiTexCoord2fARB(GL_TEXTURE1,u,0); glVertex3i(x,high,y);
glColor3f(c10,c10,c10);
- glTexCoord2f(u,1); glMultiTexCoord2f(GL_TEXTURE1,u,1); glVertex3i(x+1,high,y);
- glTexCoord2f(0,1); glMultiTexCoord2f(GL_TEXTURE1,0,1); glVertex3i(x+1,low,y);
+ glTexCoord2f(u,1); glMultiTexCoord2fARB(GL_TEXTURE1,u,1); glVertex3i(x+1,high,y);
+ glTexCoord2f(0,1); glMultiTexCoord2fARB(GL_TEXTURE1,0,1); glVertex3i(x+1,low,y);
glEnd();
}
@@ -322,18 +341,18 @@
float u=CalcTextureExtent(high,low);
int tex=AnimateTexture(tile->textures[3],game->frame);
- glActiveTexture(GL_TEXTURE0);
+ glActiveTextureARB(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D,renderer->textures[tex]);
- glActiveTexture(GL_TEXTURE1);
+ glActiveTextureARB(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D,renderer->lights[tex]);
glBegin(GL_QUADS);
glColor3f(c10,c10,c10);
- glTexCoord2f(0,1); glMultiTexCoord2f(GL_TEXTURE1,0,1); glVertex3i(x+1,high,y);
- glTexCoord2f(u,1); glMultiTexCoord2f(GL_TEXTURE1,u,1); glVertex3i(x+1,low,y);
+ glTexCoord2f(0,1); glMultiTexCoord2fARB(GL_TEXTURE1,0,1); glVertex3i(x+1,high,y);
+ glTexCoord2f(u,1); glMultiTexCoord2fARB(GL_TEXTURE1,u,1); glVertex3i(x+1,low,y);
glColor3f(c00,c00,c00);
- glTexCoord2f(u,0); glMultiTexCoord2f(GL_TEXTURE1,u,0); glVertex3i(x,low,y);
- glTexCoord2f(0,0); glMultiTexCoord2f(GL_TEXTURE1,0,0); glVertex3i(x,high,y);
+ glTexCoord2f(u,0); glMultiTexCoord2fARB(GL_TEXTURE1,u,0); glVertex3i(x,low,y);
+ glTexCoord2f(0,0); glMultiTexCoord2fARB(GL_TEXTURE1,0,0); glVertex3i(x,high,y);
glEnd();
}
}