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