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:

committed by
Kenneth Graunke

parent
50370e483b
commit
1bbd3bb98a
@@ -144,6 +144,7 @@ static const struct extension extension_table[] = {
|
||||
{ "GL_ARB_texture_float", o(ARB_texture_float), GL, 2004 },
|
||||
{ "GL_ARB_texture_gather", o(ARB_texture_gather), GL, 2009 },
|
||||
{ "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_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 },
|
||||
|
@@ -3218,6 +3218,7 @@ struct gl_extensions
|
||||
GLboolean ARB_texture_env_dot3;
|
||||
GLboolean ARB_texture_float;
|
||||
GLboolean ARB_texture_gather;
|
||||
GLboolean ARB_texture_mirror_clamp_to_edge;
|
||||
GLboolean ARB_texture_multisample;
|
||||
GLboolean ARB_texture_non_power_of_two;
|
||||
GLboolean ARB_texture_query_levels;
|
||||
|
@@ -305,7 +305,7 @@ validate_texture_wrap_mode(struct gl_context *ctx, GLenum wrap)
|
||||
case GL_MIRROR_CLAMP_EXT:
|
||||
return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp;
|
||||
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:
|
||||
return e->EXT_texture_mirror_clamp;
|
||||
default:
|
||||
|
@@ -84,16 +84,22 @@ validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap)
|
||||
break;
|
||||
|
||||
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:
|
||||
supported = is_desktop_gl
|
||||
&& (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)
|
||||
&& (target != GL_TEXTURE_RECTANGLE_NV)
|
||||
&& (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_EXTERNAL_OES);
|
||||
break;
|
||||
|
||||
case GL_MIRROR_CLAMP_TO_BORDER_EXT:
|
||||
supported = is_desktop_gl && e->EXT_texture_mirror_clamp
|
||||
&& (target != GL_TEXTURE_RECTANGLE_NV)
|
||||
&& (target != GL_TEXTURE_RECTANGLE_NV)
|
||||
&& (target != GL_TEXTURE_EXTERNAL_OES);
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user