mesa: add KHR_no_error support to glGenerate*Mipmap()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Samuel Pitoiset 2017-07-18 21:25:46 +02:00
parent 15603acfd9
commit bc1c45d0ed
4 changed files with 34 additions and 2 deletions

View file

@ -514,7 +514,7 @@
<param name="param" type="const GLint *" />
</function>
<function name="GenerateTextureMipmap">
<function name="GenerateTextureMipmap" no_error="true">
<param name="texture" type="GLuint" />
</function>

View file

@ -285,7 +285,7 @@
<glx rop="4330"/>
</function>
<function name="GenerateMipmap" es2="2.0">
<function name="GenerateMipmap" es2="2.0" no_error="true">
<param name="target" type="GLenum"/>
<glx rop="4325"/>
</function>

View file

@ -176,11 +176,28 @@ generate_texture_mipmap_error(struct gl_context *ctx,
generate_texture_mipmap(ctx, texObj, target, dsa, false);
}
static void
generate_texture_mipmap_no_error(struct gl_context *ctx,
struct gl_texture_object *texObj,
GLenum target, bool dsa)
{
generate_texture_mipmap(ctx, texObj, target, dsa, true);
}
/**
* Generate all the mipmap levels below the base level.
* Note: this GL function would be more useful if one could specify a
* cube face, a set of array slices, etc.
*/
void GLAPIENTRY
_mesa_GenerateMipmap_no_error(GLenum target)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_object *texObj = _mesa_get_current_tex_object(ctx, target);
generate_texture_mipmap_no_error(ctx, texObj, target, false);
}
void GLAPIENTRY
_mesa_GenerateMipmap(GLenum target)
{
@ -203,6 +220,15 @@ _mesa_GenerateMipmap(GLenum target)
/**
* Generate all the mipmap levels below the base level.
*/
void GLAPIENTRY
_mesa_GenerateTextureMipmap_no_error(GLuint texture)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_object *texObj = _mesa_lookup_texture(ctx, texture);
generate_texture_mipmap_no_error(ctx, texObj, texObj->Target, true);
}
void GLAPIENTRY
_mesa_GenerateTextureMipmap(GLuint texture)
{

View file

@ -35,9 +35,15 @@ bool
_mesa_is_valid_generate_texture_mipmap_internalformat(struct gl_context *ctx,
GLenum internalformat);
void GLAPIENTRY
_mesa_GenerateMipmap_no_error(GLenum target);
extern void GLAPIENTRY
_mesa_GenerateMipmap(GLenum target);
void GLAPIENTRY
_mesa_GenerateTextureMipmap_no_error(GLuint texture);
extern void GLAPIENTRY
_mesa_GenerateTextureMipmap(GLuint texture);