summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-08-06 17:22:29 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-08-06 17:22:29 -0600
commitbe66a8f43172327e3cdde27281e40377cacbb121 (patch)
treef58b78ddd168a0b950d1f6fd4c18151c536ab93c
parentea0007cc4ca077c7e3951c4fda122bd242728d70 (diff)
gallium: added PIPE_CAP_TEXTURE_MIRROR_CLAMP, PIPE_CAP_TEXTURE_MIRROR_REPEAT
Check for these caps in state tracker and enable corresponding GL extensions if supported.
-rw-r--r--src/gallium/drivers/softpipe/sp_screen.c4
-rw-r--r--src/gallium/include/pipe/p_defines.h3
-rw-r--r--src/mesa/state_tracker/st_extensions.c10
3 files changed, 15 insertions, 2 deletions
diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c
index 3f9d4b0ed31..ceb5616b5d0 100644
--- a/src/gallium/drivers/softpipe/sp_screen.c
+++ b/src/gallium/drivers/softpipe/sp_screen.c
@@ -72,6 +72,10 @@ softpipe_get_param(struct pipe_screen *screen, int param)
return PIPE_MAX_COLOR_BUFS;
case PIPE_CAP_OCCLUSION_QUERY:
return 1;
+ case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
+ return 1;
+ case PIPE_CAP_TEXTURE_MIRROR_REPEAT:
+ return 1;
case PIPE_CAP_TEXTURE_SHADOW_MAP:
return 1;
case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
index b1d100ef53c..bdc6d4ef468 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -281,6 +281,9 @@ enum pipe_texture_target {
#define PIPE_CAP_GUARD_BAND_TOP 21 /*< float */
#define PIPE_CAP_GUARD_BAND_RIGHT 22 /*< float */
#define PIPE_CAP_GUARD_BAND_BOTTOM 23 /*< float */
+#define PIPE_CAP_TEXTURE_MIRROR_CLAMP 24
+#define PIPE_CAP_TEXTURE_MIRROR_REPEAT 25
+
#ifdef __cplusplus
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index cacf972a1ba..b7444b298cf 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -134,8 +134,6 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.ARB_texture_env_combine = GL_TRUE;
ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE;
ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE;
- ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; /* XXX temp */
-
ctx->Extensions.ARB_vertex_program = GL_TRUE;
ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;
@@ -179,6 +177,14 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.ARB_shading_language_120 = GL_TRUE;
}
+ if (screen->get_param(screen, PIPE_CAP_TEXTURE_MIRROR_REPEAT) > 0) {
+ ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE;
+ }
+
+ if (screen->get_param(screen, PIPE_CAP_TEXTURE_MIRROR_CLAMP) > 0) {
+ ctx->Extensions.EXT_texture_mirror_clamp = GL_TRUE;
+ }
+
if (screen->get_param(screen, PIPE_CAP_NPOT_TEXTURES)) {
ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE;
ctx->Extensions.NV_texture_rectangle = GL_TRUE;