diff -r 7087da0d87aa lib/ivis_opengl/pieblitfunc.c
--- a/lib/ivis_opengl/pieblitfunc.c	Wed Dec 05 22:55:13 2007 +0100
+++ b/lib/ivis_opengl/pieblitfunc.c	Sat Dec 08 14:49:54 2007 +0100
@@ -490,8 +490,8 @@ void pie_DownLoadRadar(unsigned char *bu
 	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl_clamp_mode);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl_clamp_mode);
 }
 
 void pie_RenderRadar(IMAGEDEF *Image,iBitmap *Bmp,UDWORD Modulus,int x,int y)
diff -r 7087da0d87aa lib/ivis_opengl/piefunc.c
--- a/lib/ivis_opengl/piefunc.c	Wed Dec 05 22:55:13 2007 +0100
+++ b/lib/ivis_opengl/piefunc.c	Sat Dec 08 14:49:54 2007 +0100
@@ -42,6 +42,7 @@
 #include "pietexture.h"
 #include "lib/ivis_common/piemode.h"
 #include "lib/ivis_common/pieclip.h"
+#include "screen.h"
 
 /***************************************************************************/
 /*
@@ -208,7 +209,7 @@ void pie_DrawSkybox(iView player, iView 
 
 	// the texture wraps over at the edges (repeat)
 	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
-	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl_clamp_mode);
 
 	// fog should not affect the sky
 	glDisable(GL_FOG);
diff -r 7087da0d87aa lib/ivis_opengl/screen.c
--- a/lib/ivis_opengl/screen.c	Wed Dec 05 22:55:13 2007 +0100
+++ b/lib/ivis_opengl/screen.c	Sat Dec 08 14:49:54 2007 +0100
@@ -87,6 +87,8 @@ static UDWORD	backDropWidth = BACKDROP_W
 static UDWORD	backDropWidth = BACKDROP_WIDTH;
 static UDWORD	backDropHeight = BACKDROP_HEIGHT;
 static GLuint backDropTexture = -1;
+
+GLint gl_clamp_mode = GL_CLAMP;
 
 /* Initialise the double buffered display */
 BOOL screenInitialise(	UDWORD		width,		// Display width
@@ -187,6 +189,16 @@ BOOL screenInitialise(	UDWORD		width,		/
 			debug( LOG_ERROR, "Error: SDL_SetVideoMode failed (%s).\n", SDL_GetError() );
 			return FALSE;
 		}
+	}
+
+	if (atof(glGetString(GL_VERSION)) > 1.15) // add .05 for float conversion errors
+	{
+		gl_clamp_mode = GL_CLAMP_TO_EDGE;
+		debug(LOG_VIDEO, "Using GL_CLAMP_TO_EDGE\n");
+	}
+	else
+	{
+		debug(LOG_VIDEO, "Using GL_CLAMP\n");
 	}
 
 	glViewport(0, 0, width, height);
@@ -427,8 +439,8 @@ void screen_SetBackDropFromFile(char* fi
 		glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl_clamp_mode);
+		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl_clamp_mode);
 	}
 
 	image_delete(&image);
@@ -466,8 +478,8 @@ void screen_Upload(UWORD* newBackDropBmp
 	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl_clamp_mode);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl_clamp_mode);
 	}
 
 	glDisable(GL_DEPTH_TEST);
diff -r 7087da0d87aa lib/ivis_opengl/screen.h
--- a/lib/ivis_opengl/screen.h	Wed Dec 05 22:55:13 2007 +0100
+++ b/lib/ivis_opengl/screen.h	Sat Dec 08 14:49:54 2007 +0100
@@ -33,6 +33,7 @@
 #error Framework header files MUST be included from Frame.h ONLY.
 #endif
 
+#include <SDL/SDL_opengl.h>
 #include "lib/framework/types.h"
 
 /* ------------------------------------------------------------------------------------------- */
@@ -59,6 +60,8 @@ typedef struct {
 	unsigned char*	data;
 } pie_image;
 
+extern GLint gl_clamp_mode;
+
 BOOL image_init(pie_image* image);
 BOOL image_create(pie_image* image,
 		  unsigned int width,
diff -r 7087da0d87aa lib/ivis_opengl/tex.c
--- a/lib/ivis_opengl/tex.c	Wed Dec 05 22:55:13 2007 +0100
+++ b/lib/ivis_opengl/tex.c	Sat Dec 08 14:49:54 2007 +0100
@@ -40,6 +40,7 @@
 #include "lib/ivis_common/piepalette.h"
 #include "lib/ivis_common/bug.h"
 #include "lib/ivis_common/ivispatch.h"
+#include "screen.h"
 
 //*************************************************************************
 
@@ -130,8 +131,8 @@ int pie_AddBMPtoTexPages(iSprite* s, STR
 	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl_clamp_mode);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl_clamp_mode);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 3);
 
 	/* Send back the texpage number so we can store it in the IMD */
@@ -165,8 +166,8 @@ void pie_ChangeTexPage(int tex_index, iS
 	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl_clamp_mode);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl_clamp_mode);
 }
 
 /**************************************************************************
diff -r 7087da0d87aa src/multiint.c
--- a/src/multiint.c	Wed Dec 05 22:55:13 2007 +0100
+++ b/src/multiint.c	Sat Dec 08 14:49:54 2007 +0100
@@ -320,8 +320,8 @@ void Show_Map(char *imagedata)
 	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, gl_clamp_mode);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, gl_clamp_mode);
 	image_delete(&image);
 //	free(image);
 	glDisable(GL_DEPTH_TEST);
_______________________________________________
Warzone-dev mailing list
[email protected]
https://mail.gna.org/listinfo/warzone-dev

Reply via email to