mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 03:38:06 +02:00
mesa: add KHR_no_error support for glActiveTexture()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
48b91103ce
commit
5521dc2477
3 changed files with 29 additions and 12 deletions
|
|
@ -4268,7 +4268,7 @@
|
|||
<enum name="DOT3_RGB" value="0x86AE"/>
|
||||
<enum name="DOT3_RGBA" value="0x86AF"/>
|
||||
|
||||
<function name="ActiveTexture" es1="1.0" es2="2.0">
|
||||
<function name="ActiveTexture" es1="1.0" es2="2.0" no_error="true">
|
||||
<param name="texture" type="GLenum"/>
|
||||
<glx rop="197"/>
|
||||
</function>
|
||||
|
|
|
|||
|
|
@ -279,14 +279,12 @@ calculate_derived_texenv( struct gl_tex_env_combine_state *state,
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* GL_ARB_multitexture */
|
||||
void GLAPIENTRY
|
||||
_mesa_ActiveTexture(GLenum texture)
|
||||
static ALWAYS_INLINE void
|
||||
active_texture(GLenum texture, bool no_error)
|
||||
{
|
||||
const GLuint texUnit = texture - GL_TEXTURE0;
|
||||
GLuint k;
|
||||
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE))
|
||||
|
|
@ -296,14 +294,16 @@ _mesa_ActiveTexture(GLenum texture)
|
|||
if (ctx->Texture.CurrentUnit == texUnit)
|
||||
return;
|
||||
|
||||
k = _mesa_max_tex_unit(ctx);
|
||||
if (!no_error) {
|
||||
GLuint k = _mesa_max_tex_unit(ctx);
|
||||
|
||||
assert(k <= ARRAY_SIZE(ctx->Texture.Unit));
|
||||
assert(k <= ARRAY_SIZE(ctx->Texture.Unit));
|
||||
|
||||
if (texUnit >= k) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glActiveTexture(texture=%s)",
|
||||
_mesa_enum_to_string(texture));
|
||||
return;
|
||||
if (texUnit >= k) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glActiveTexture(texture=%s)",
|
||||
_mesa_enum_to_string(texture));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
FLUSH_VERTICES(ctx, _NEW_TEXTURE_STATE);
|
||||
|
|
@ -316,6 +316,20 @@ _mesa_ActiveTexture(GLenum texture)
|
|||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_ActiveTexture_no_error(GLenum texture)
|
||||
{
|
||||
active_texture(texture, true);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_ActiveTexture(GLenum texture)
|
||||
{
|
||||
active_texture(texture, false);
|
||||
}
|
||||
|
||||
|
||||
/* GL_ARB_multitexture */
|
||||
void GLAPIENTRY
|
||||
_mesa_ClientActiveTexture(GLenum texture)
|
||||
|
|
|
|||
|
|
@ -77,6 +77,9 @@ _mesa_print_texunit_state( struct gl_context *ctx, GLuint unit );
|
|||
*/
|
||||
/*@{*/
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_ActiveTexture_no_error( GLenum target );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_ActiveTexture( GLenum target );
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue