mesa: add KHR_no_error support for glCopyTex{ture}SubImage*D()
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
parent
b480211058
commit
7719f52d5f
|
@ -446,7 +446,7 @@
|
|||
<param name="data" type="const GLvoid *" />
|
||||
</function>
|
||||
|
||||
<function name="CopyTextureSubImage1D">
|
||||
<function name="CopyTextureSubImage1D" no_error="true">
|
||||
<param name="texture" type="GLuint" />
|
||||
<param name="level" type="GLint" />
|
||||
<param name="xoffset" type="GLint" />
|
||||
|
@ -455,7 +455,7 @@
|
|||
<param name="width" type="GLsizei" />
|
||||
</function>
|
||||
|
||||
<function name="CopyTextureSubImage2D">
|
||||
<function name="CopyTextureSubImage2D" no_error="true">
|
||||
<param name="texture" type="GLuint" />
|
||||
<param name="level" type="GLint" />
|
||||
<param name="xoffset" type="GLint" />
|
||||
|
@ -466,7 +466,7 @@
|
|||
<param name="height" type="GLsizei" />
|
||||
</function>
|
||||
|
||||
<function name="CopyTextureSubImage3D">
|
||||
<function name="CopyTextureSubImage3D" no_error="true">
|
||||
<param name="texture" type="GLuint" />
|
||||
<param name="level" type="GLint" />
|
||||
<param name="xoffset" type="GLint" />
|
||||
|
|
|
@ -3277,7 +3277,7 @@
|
|||
<glx rop="4120"/>
|
||||
</function>
|
||||
|
||||
<function name="CopyTexSubImage1D">
|
||||
<function name="CopyTexSubImage1D" no_error="true">
|
||||
<param name="target" type="GLenum"/>
|
||||
<param name="level" type="GLint"/>
|
||||
<param name="xoffset" type="GLint"/>
|
||||
|
@ -3287,7 +3287,7 @@
|
|||
<glx rop="4121"/>
|
||||
</function>
|
||||
|
||||
<function name="CopyTexSubImage2D" es1="1.0" es2="2.0">
|
||||
<function name="CopyTexSubImage2D" es1="1.0" es2="2.0" no_error="true">
|
||||
<param name="target" type="GLenum"/>
|
||||
<param name="level" type="GLint"/>
|
||||
<param name="xoffset" type="GLint"/>
|
||||
|
@ -4041,7 +4041,7 @@
|
|||
<glx rop="4115" large="true"/>
|
||||
</function>
|
||||
|
||||
<function name="CopyTexSubImage3D" es2="3.0">
|
||||
<function name="CopyTexSubImage3D" es2="3.0" no_error="true">
|
||||
<param name="target" type="GLenum"/>
|
||||
<param name="level" type="GLint"/>
|
||||
<param name="xoffset" type="GLint"/>
|
||||
|
|
|
@ -4141,6 +4141,87 @@ _mesa_CopyTextureSubImage3D(GLuint texture, GLint level,
|
|||
yoffset, zoffset, x, y, width, height, self);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_CopyTexSubImage1D_no_error(GLenum target, GLint level, GLint xoffset,
|
||||
GLint x, GLint y, GLsizei width)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
struct gl_texture_object* texObj = _mesa_get_current_tex_object(ctx, target);
|
||||
copy_texture_sub_image_no_error(ctx, 1, texObj, target, level, xoffset, 0, 0,
|
||||
x, y, width, 1);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_CopyTexSubImage2D_no_error(GLenum target, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint x, GLint y, GLsizei width,
|
||||
GLsizei height)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
struct gl_texture_object* texObj = _mesa_get_current_tex_object(ctx, target);
|
||||
copy_texture_sub_image_no_error(ctx, 2, texObj, target, level, xoffset,
|
||||
yoffset, 0, x, y, width, height);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_CopyTexSubImage3D_no_error(GLenum target, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint zoffset, GLint x, GLint y,
|
||||
GLsizei width, GLsizei height)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
struct gl_texture_object* texObj = _mesa_get_current_tex_object(ctx, target);
|
||||
copy_texture_sub_image_no_error(ctx, 3, texObj, target, level, xoffset,
|
||||
yoffset, zoffset, x, y, width, height);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_CopyTextureSubImage1D_no_error(GLuint texture, GLint level, GLint xoffset,
|
||||
GLint x, GLint y, GLsizei width)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
struct gl_texture_object* texObj = _mesa_lookup_texture(ctx, texture);
|
||||
copy_texture_sub_image_no_error(ctx, 1, texObj, texObj->Target, level,
|
||||
xoffset, 0, 0, x, y, width, 1);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_CopyTextureSubImage2D_no_error(GLuint texture, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint x, GLint y,
|
||||
GLsizei width, GLsizei height)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
struct gl_texture_object* texObj = _mesa_lookup_texture(ctx, texture);
|
||||
copy_texture_sub_image_no_error(ctx, 2, texObj, texObj->Target, level,
|
||||
xoffset, yoffset, 0, x, y, width, height);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_CopyTextureSubImage3D_no_error(GLuint texture, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint zoffset, GLint x,
|
||||
GLint y, GLsizei width, GLsizei height)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
struct gl_texture_object* texObj = _mesa_lookup_texture(ctx, texture);
|
||||
if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
|
||||
/* Act like CopyTexSubImage2D */
|
||||
copy_texture_sub_image_no_error(ctx, 2, texObj,
|
||||
GL_TEXTURE_CUBE_MAP_POSITIVE_X + zoffset,
|
||||
level, xoffset, yoffset, 0, x, y, width,
|
||||
height);
|
||||
}
|
||||
else
|
||||
copy_texture_sub_image_no_error(ctx, 3, texObj, texObj->Target, level,
|
||||
xoffset, yoffset, zoffset, x, y, width,
|
||||
height);
|
||||
}
|
||||
|
||||
|
||||
static bool
|
||||
check_clear_tex_image(struct gl_context *ctx,
|
||||
const char *function,
|
||||
|
|
|
@ -383,6 +383,34 @@ _mesa_CopyTextureSubImage3D(GLuint texture, GLint level,
|
|||
GLint x, GLint y,
|
||||
GLsizei width, GLsizei height);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_CopyTexSubImage1D_no_error(GLenum target, GLint level, GLint xoffset,
|
||||
GLint x, GLint y, GLsizei width );
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_CopyTexSubImage2D_no_error(GLenum target, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint x, GLint y, GLsizei width,
|
||||
GLsizei height);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_CopyTexSubImage3D_no_error(GLenum target, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint zoffset, GLint x, GLint y,
|
||||
GLsizei width, GLsizei height);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_CopyTextureSubImage1D_no_error(GLuint texture, GLint level, GLint xoffset,
|
||||
GLint x, GLint y, GLsizei width);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_CopyTextureSubImage2D_no_error(GLuint texture, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint x, GLint y,
|
||||
GLsizei width, GLsizei height);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_CopyTextureSubImage3D_no_error(GLuint texture, GLint level, GLint xoffset,
|
||||
GLint yoffset, GLint zoffset, GLint x,
|
||||
GLint y, GLsizei width, GLsizei height);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_ClearTexSubImage( GLuint texture, GLint level,
|
||||
GLint xoffset, GLint yoffset, GLint zoffset,
|
||||
|
|
Loading…
Reference in New Issue