summaryrefslogtreecommitdiff
path: root/src/mesa/main
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2001-03-26 19:42:40 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2001-03-26 19:42:40 +0000
commit2bb04cad14f5edd9e2657a1122ceeb1fb468f4a9 (patch)
tree3ccdd22150911fffac3a40a069c8a29b043cb0db /src/mesa/main
parent425fea1c346438f1c60a768514e74f655f05417a (diff)
added GL_ARB_texture_border_clamp
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/enums.c4
-rw-r--r--src/mesa/main/extensions.c6
-rw-r--r--src/mesa/main/mtypes.h13
-rw-r--r--src/mesa/main/texstate.c27
4 files changed, 35 insertions, 15 deletions
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index 310b80f532..1801a4e499 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -1,4 +1,4 @@
-/* $Id: enums.c,v 1.15 2001/03/22 04:57:09 brianp Exp $ */
+/* $Id: enums.c,v 1.16 2001/03/26 19:42:40 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -841,6 +841,8 @@ enum_elt all_enums[] =
{ "GL_DOT3_RGB_EXT", 0x86ae },
{ "GL_DOT3_RGBA_EXT", 0x86af },
+ /* GL_ARB_texture_border_clamp */
+ { "GL_CLAMP_TO_BORDER_ARB", 0x812D },
};
#define Elements(x) sizeof(x)/sizeof(*x)
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 395005681a..372b2bb687 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -1,4 +1,4 @@
-/* $Id: extensions.c,v 1.55 2001/03/22 14:42:24 brianp Exp $ */
+/* $Id: extensions.c,v 1.56 2001/03/26 19:42:40 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -58,6 +58,7 @@ static struct {
} default_extensions[] = {
{ OFF, "GL_ARB_imaging", F(ARB_imaging) },
{ OFF, "GL_ARB_multitexture", F(ARB_multitexture) },
+ { OFF, "GL_ARB_texture_border_clamp", F(ARB_texture_border_clamp) },
{ OFF, "GL_ARB_texture_compression", F(ARB_texture_compression) },
{ OFF, "GL_ARB_texture_cube_map", F(ARB_texture_cube_map) },
{ OFF, "GL_ARB_texture_env_add", F(EXT_texture_env_add) },
@@ -106,6 +107,7 @@ static struct {
{ OFF, "GL_SGI_color_matrix", F(SGI_color_matrix) },
{ OFF, "GL_SGI_color_table", F(SGI_color_table) },
{ OFF, "GL_SGIS_pixel_texture", F(SGIS_pixel_texture) },
+ { OFF, "GL_SGIS_texture_border_clamp", F(ARB_texture_border_clamp) },
{ OFF, "GL_SGIS_texture_edge_clamp", F(SGIS_texture_edge_clamp) },
{ OFF, "GL_SGIX_depth_texture", F(SGIX_depth_texture) },
{ OFF, "GL_SGIX_pixel_texture", F(SGIX_pixel_texture) },
@@ -127,6 +129,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
const char *extensions[] = {
"GL_ARB_imaging",
"GL_ARB_multitexture",
+ "GL_ARB_texture_border_clamp",
"GL_ARB_texture_cube_map",
"GL_ARB_texture_env_add",
"GL_ARB_texture_env_combine",
@@ -157,6 +160,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
"GL_SGI_color_table",
"GL_SGIS_pixel_texture",
"GL_SGIS_texture_edge_clamp",
+ "GL_SGIS_texture_border_clamp",
"GL_SGIX_depth_texture",
"GL_SGIX_pixel_texture",
"GL_SGIX_shadow",
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 2c7f2e1da8..c261756b5b 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1,4 +1,4 @@
-/* $Id: mtypes.h,v 1.31 2001/03/24 06:01:27 gareth Exp $ */
+/* $Id: mtypes.h,v 1.32 2001/03/26 19:42:40 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -798,8 +798,8 @@ struct gl_texture_format {
/* Texture image record */
struct gl_texture_image {
GLenum Format; /* GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA,
- * GL_INTENSITY, GL_RGB, GL_RGBA, or
- * GL_COLOR_INDEX only
+ * GL_INTENSITY, GL_RGB, GL_RGBA,
+ * GL_COLOR_INDEX or GL_DEPTH_COMPONENT only.
*/
GLenum Type; /* Texel type: GL_UNSIGNED_BYTE, etc. */
GLenum IntFormat; /* Internal format as given by the user */
@@ -836,9 +836,9 @@ struct gl_texture_object {
GLuint Dimensions; /* 1 or 2 or 3 or 6 (cube map) */
GLfloat Priority; /* in [0,1] */
GLchan BorderColor[4];
- GLenum WrapS; /* GL_CLAMP, REPEAT or CLAMP_TO_EDGE */
- GLenum WrapT; /* GL_CLAMP, REPEAT or CLAMP_TO_EDGE */
- GLenum WrapR; /* GL_CLAMP, REPEAT or CLAMP_TO_EDGE */
+ GLenum WrapS; /* Wrap modes are: GL_CLAMP, REPEAT */
+ GLenum WrapT; /* GL_CLAMP_TO_EDGE, and */
+ GLenum WrapR; /* GL_CLAMP_TO_BORDER_ARB */
GLenum MinFilter; /* minification filter */
GLenum MagFilter; /* magnification filter */
GLfloat MinLod; /* min lambda, OpenGL 1.2 */
@@ -1203,6 +1203,7 @@ struct gl_extensions {
*/
GLboolean ARB_imaging;
GLboolean ARB_multitexture;
+ GLboolean ARB_texture_border_clamp;
GLboolean ARB_texture_compression;
GLboolean ARB_texture_cube_map;
GLboolean EXT_blend_color;
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 438ba6f142..93d12e7191 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -1,4 +1,4 @@
-/* $Id: texstate.c,v 1.38 2001/03/22 04:54:58 brianp Exp $ */
+/* $Id: texstate.c,v 1.39 2001/03/26 19:42:40 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -63,6 +63,10 @@
#define GL_DOT3_RGBA_ARB 0x86AF
#endif
+/* XXX this is temporary, until GL/glext.h is updated. */
+#ifndef GL_CLAMP_TO_BORDER_ARB
+#define GL_CLAMP_TO_BORDER_ARB 0x812D
+#endif
/**********************************************************************/
@@ -722,8 +726,11 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
case GL_TEXTURE_WRAP_S:
if (texObj->WrapS == eparam)
return;
-
- if (eparam==GL_CLAMP || eparam==GL_REPEAT || eparam==GL_CLAMP_TO_EDGE) {
+ if (eparam==GL_CLAMP ||
+ eparam==GL_REPEAT ||
+ eparam==GL_CLAMP_TO_EDGE ||
+ (eparam == GL_CLAMP_TO_BORDER_ARB &&
+ ctx->Extensions.ARB_texture_border_clamp)) {
texObj->WrapS = eparam;
}
else {
@@ -734,8 +741,11 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
case GL_TEXTURE_WRAP_T:
if (texObj->WrapT == eparam)
return;
-
- if (eparam==GL_CLAMP || eparam==GL_REPEAT || eparam==GL_CLAMP_TO_EDGE) {
+ if (eparam==GL_CLAMP ||
+ eparam==GL_REPEAT ||
+ eparam==GL_CLAMP_TO_EDGE ||
+ (eparam == GL_CLAMP_TO_BORDER_ARB &&
+ ctx->Extensions.ARB_texture_border_clamp)) {
texObj->WrapT = eparam;
}
else {
@@ -746,8 +756,11 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
case GL_TEXTURE_WRAP_R_EXT:
if (texObj->WrapR == eparam)
return;
-
- if (eparam==GL_CLAMP || eparam==GL_REPEAT || eparam==GL_CLAMP_TO_EDGE) {
+ if (eparam==GL_CLAMP ||
+ eparam==GL_REPEAT ||
+ eparam==GL_CLAMP_TO_EDGE ||
+ (eparam == GL_CLAMP_TO_BORDER_ARB &&
+ ctx->Extensions.ARB_texture_border_clamp)) {
texObj->WrapR = eparam;
}
else {