diff options
author | Timothy Arceri <[email protected]> | 2017-06-26 10:49:17 +1000 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-06-27 08:11:02 +1000 |
commit | bc0af44a5ae9a6671cc6c2f5a380d86fd7babacb (patch) | |
tree | 5dd380863b409edf1eb31778435a5408e5626c0e /src | |
parent | 51f4ebdbdc8bed017ddbd85775766efe4bd80555 (diff) |
mesa: add KHR_no_error support for gl{Compressed}TexImage*D()
Reviewed-by: Nicolai Hähnle <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mapi/glapi/gen/gl_API.xml | 14 | ||||
-rw-r--r-- | src/mesa/main/teximage.c | 82 | ||||
-rw-r--r-- | src/mesa/main/teximage.h | 34 |
3 files changed, 124 insertions, 6 deletions
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 2cc66ac8b0f..550af08268e 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -2149,7 +2149,7 @@ <glx rop="108"/> </function> - <function name="TexImage1D"> + <function name="TexImage1D" no_error="true"> <param name="target" type="GLenum"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLint"/> @@ -2161,7 +2161,7 @@ <glx rop="109" large="true"/> </function> - <function name="TexImage2D" es1="1.0" es2="2.0"> + <function name="TexImage2D" es1="1.0" es2="2.0" no_error="true"> <param name="target" type="GLenum"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLint"/> @@ -4011,7 +4011,7 @@ <glx rop="4113"/> </function> - <function name="TexImage3D" es2="3.0"> + <function name="TexImage3D" es2="3.0" no_error="true"> <param name="target" type="GLenum"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLint"/> @@ -4507,7 +4507,8 @@ <glx rop="229"/> </function> - <function name="CompressedTexImage3D" es2="3.0" marshal="sync"> + <function name="CompressedTexImage3D" es2="3.0" marshal="sync" + no_error="true"> <param name="target" type="GLenum"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLenum"/> @@ -4520,7 +4521,8 @@ <glx rop="216" handcode="client"/> </function> - <function name="CompressedTexImage2D" es1="1.0" es2="2.0" marshal="sync"> + <function name="CompressedTexImage2D" es1="1.0" es2="2.0" marshal="sync" + no_error="true"> <param name="target" type="GLenum"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLenum"/> @@ -4532,7 +4534,7 @@ <glx rop="215" handcode="client"/> </function> - <function name="CompressedTexImage1D" marshal="sync"> + <function name="CompressedTexImage1D" marshal="sync" no_error="true"> <param name="target" type="GLenum"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLenum"/> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 4ff7d33e0df..128e0101cd6 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -3090,6 +3090,18 @@ teximage_err(struct gl_context *ctx, GLboolean compressed, GLuint dims, } +static void +teximage_no_error(struct gl_context *ctx, GLboolean compressed, GLuint dims, + GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLsizei height, GLsizei depth, + GLint border, GLenum format, GLenum type, + GLsizei imageSize, const GLvoid *pixels) +{ + teximage(ctx, compressed, dims, target, level, internalFormat, width, height, + depth, border, format, type, imageSize, pixels, true); +} + + /* * Called from the API. Note that width includes the border. */ @@ -3144,6 +3156,40 @@ _mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalFormat, void GLAPIENTRY +_mesa_TexImage1D_no_error(GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLint border, GLenum format, + GLenum type, const GLvoid *pixels) +{ + GET_CURRENT_CONTEXT(ctx); + teximage_no_error(ctx, GL_FALSE, 1, target, level, internalFormat, width, 1, + 1, border, format, type, 0, pixels); +} + + +void GLAPIENTRY +_mesa_TexImage2D_no_error(GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLsizei height, GLint border, + GLenum format, GLenum type, const GLvoid *pixels) +{ + GET_CURRENT_CONTEXT(ctx); + teximage_no_error(ctx, GL_FALSE, 2, target, level, internalFormat, width, + height, 1, border, format, type, 0, pixels); +} + + +void GLAPIENTRY +_mesa_TexImage3D_no_error(GLenum target, GLint level, GLint internalFormat, + GLsizei width, GLsizei height, GLsizei depth, + GLint border, GLenum format, GLenum type, + const GLvoid *pixels ) +{ + GET_CURRENT_CONTEXT(ctx); + teximage_no_error(ctx, GL_FALSE, 3, target, level, internalFormat, + width, height, depth, border, format, type, 0, pixels); +} + + +void GLAPIENTRY _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image) { struct gl_texture_object *texObj; @@ -4571,6 +4617,42 @@ _mesa_CompressedTexImage3D(GLenum target, GLint level, } +void GLAPIENTRY +_mesa_CompressedTexImage1D_no_error(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLint border, GLsizei imageSize, + const GLvoid *data) +{ + GET_CURRENT_CONTEXT(ctx); + teximage_no_error(ctx, GL_TRUE, 1, target, level, internalFormat, width, 1, + 1, border, GL_NONE, GL_NONE, imageSize, data); +} + + +void GLAPIENTRY +_mesa_CompressedTexImage2D_no_error(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLint border, + GLsizei imageSize, const GLvoid *data) +{ + GET_CURRENT_CONTEXT(ctx); + teximage_no_error(ctx, GL_TRUE, 2, target, level, internalFormat, width, + height, 1, border, GL_NONE, GL_NONE, imageSize, data); +} + + +void GLAPIENTRY +_mesa_CompressedTexImage3D_no_error(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLsizei depth, GLint border, + GLsizei imageSize, const GLvoid *data) +{ + GET_CURRENT_CONTEXT(ctx); + teximage_no_error(ctx, GL_TRUE, 3, target, level, internalFormat, width, + height, depth, border, GL_NONE, GL_NONE, imageSize, data); +} + + /** * Common helper for glCompressedTexSubImage1/2/3D() and * glCompressedTextureSubImage1/2/3D(). diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h index 295e35abb15..72168a492c1 100644 --- a/src/mesa/main/teximage.h +++ b/src/mesa/main/teximage.h @@ -269,6 +269,22 @@ _mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat, const GLvoid *pixels ); extern void GLAPIENTRY +_mesa_TexImage1D_no_error(GLenum target, GLint level, GLint internalformat, + GLsizei width, GLint border, + GLenum format, GLenum type, const GLvoid *pixels); + +extern void GLAPIENTRY +_mesa_TexImage2D_no_error(GLenum target, GLint level, GLint internalformat, + GLsizei width, GLsizei height, GLint border, + GLenum format, GLenum type, const GLvoid *pixels); + +extern void GLAPIENTRY +_mesa_TexImage3D_no_error(GLenum target, GLint level, GLint internalformat, + GLsizei width, GLsizei height, GLsizei depth, + GLint border, GLenum format, GLenum type, + const GLvoid *pixels); + +extern void GLAPIENTRY _mesa_EGLImageTargetTexture2DOES( GLenum target, GLeglImageOES image ); void GLAPIENTRY @@ -404,6 +420,24 @@ _mesa_CompressedTexImage3D(GLenum target, GLint level, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +extern void GLAPIENTRY +_mesa_CompressedTexImage1D_no_error(GLenum target, GLint level, + GLenum internalformat, GLsizei width, + GLint border, GLsizei imageSize, + const GLvoid *data); + +extern void GLAPIENTRY +_mesa_CompressedTexImage2D_no_error(GLenum target, GLint level, + GLenum internalformat, GLsizei width, + GLsizei height, GLint border, + GLsizei imageSize, const GLvoid *data); + +extern void GLAPIENTRY +_mesa_CompressedTexImage3D_no_error(GLenum target, GLint level, + GLenum internalformat, GLsizei width, + GLsizei height, GLsizei depth, GLint border, + GLsizei imageSize, const GLvoid *data); + extern void GLAPIENTRY _mesa_CompressedTexSubImage1D_no_error(GLenum target, GLint level, |