mesa: Add infrastructure for GL_ARB_texture_mirror_clamp_to_edge.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Rico Schüller <kgbricola@web.de>
This commit is contained in:
Rico Schüller
2013-10-20 12:39:55 +02:00
committed by Kenneth Graunke
parent 50370e483b
commit 1bbd3bb98a
4 changed files with 12 additions and 4 deletions

View File

@@ -144,6 +144,7 @@ static const struct extension extension_table[] = {
{ "GL_ARB_texture_float", o(ARB_texture_float), GL, 2004 }, { "GL_ARB_texture_float", o(ARB_texture_float), GL, 2004 },
{ "GL_ARB_texture_gather", o(ARB_texture_gather), GL, 2009 }, { "GL_ARB_texture_gather", o(ARB_texture_gather), GL, 2009 },
{ "GL_ARB_texture_mirrored_repeat", o(dummy_true), GLL, 2001 }, { "GL_ARB_texture_mirrored_repeat", o(dummy_true), GLL, 2001 },
{ "GL_ARB_texture_mirror_clamp_to_edge", o(ARB_texture_mirror_clamp_to_edge), GL, 2013 },
{ "GL_ARB_texture_multisample", o(ARB_texture_multisample), GL, 2009 }, { "GL_ARB_texture_multisample", o(ARB_texture_multisample), GL, 2009 },
{ "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), GL, 2003 }, { "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), GL, 2003 },
{ "GL_ARB_texture_query_levels", o(ARB_texture_query_levels), GL, 2012 }, { "GL_ARB_texture_query_levels", o(ARB_texture_query_levels), GL, 2012 },

View File

@@ -3218,6 +3218,7 @@ struct gl_extensions
GLboolean ARB_texture_env_dot3; GLboolean ARB_texture_env_dot3;
GLboolean ARB_texture_float; GLboolean ARB_texture_float;
GLboolean ARB_texture_gather; GLboolean ARB_texture_gather;
GLboolean ARB_texture_mirror_clamp_to_edge;
GLboolean ARB_texture_multisample; GLboolean ARB_texture_multisample;
GLboolean ARB_texture_non_power_of_two; GLboolean ARB_texture_non_power_of_two;
GLboolean ARB_texture_query_levels; GLboolean ARB_texture_query_levels;

View File

@@ -305,7 +305,7 @@ validate_texture_wrap_mode(struct gl_context *ctx, GLenum wrap)
case GL_MIRROR_CLAMP_EXT: case GL_MIRROR_CLAMP_EXT:
return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp; return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp;
case GL_MIRROR_CLAMP_TO_EDGE_EXT: case GL_MIRROR_CLAMP_TO_EDGE_EXT:
return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp; return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp || e->ARB_texture_mirror_clamp_to_edge;
case GL_MIRROR_CLAMP_TO_BORDER_EXT: case GL_MIRROR_CLAMP_TO_BORDER_EXT:
return e->EXT_texture_mirror_clamp; return e->EXT_texture_mirror_clamp;
default: default:

View File

@@ -84,16 +84,22 @@ validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap)
break; break;
case GL_MIRROR_CLAMP_EXT: case GL_MIRROR_CLAMP_EXT:
supported = is_desktop_gl
&& (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)
&& (target != GL_TEXTURE_RECTANGLE_NV)
&& (target != GL_TEXTURE_EXTERNAL_OES);
break;
case GL_MIRROR_CLAMP_TO_EDGE_EXT: case GL_MIRROR_CLAMP_TO_EDGE_EXT:
supported = is_desktop_gl supported = is_desktop_gl
&& (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp) && (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp || e->ARB_texture_mirror_clamp_to_edge)
&& (target != GL_TEXTURE_RECTANGLE_NV) && (target != GL_TEXTURE_RECTANGLE_NV)
&& (target != GL_TEXTURE_EXTERNAL_OES); && (target != GL_TEXTURE_EXTERNAL_OES);
break; break;
case GL_MIRROR_CLAMP_TO_BORDER_EXT: case GL_MIRROR_CLAMP_TO_BORDER_EXT:
supported = is_desktop_gl && e->EXT_texture_mirror_clamp supported = is_desktop_gl && e->EXT_texture_mirror_clamp
&& (target != GL_TEXTURE_RECTANGLE_NV) && (target != GL_TEXTURE_RECTANGLE_NV)
&& (target != GL_TEXTURE_EXTERNAL_OES); && (target != GL_TEXTURE_EXTERNAL_OES);
break; break;