From bc0af44a5ae9a6671cc6c2f5a380d86fd7babacb Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 26 Jun 2017 10:49:17 +1000 Subject: [PATCH] mesa: add KHR_no_error support for gl{Compressed}TexImage*D() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Nicolai Hähnle Reviewed-by: Samuel Pitoiset --- src/mapi/glapi/gen/gl_API.xml | 14 ++++---- src/mesa/main/teximage.c | 82 +++++++++++++++++++++++++++++++++++++++++++ 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 @@ - + @@ -2161,7 +2161,7 @@ - + @@ -4011,7 +4011,7 @@ - + @@ -4507,7 +4507,8 @@ - + @@ -4520,7 +4521,8 @@ - + @@ -4532,7 +4534,7 @@ - + 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, -- 2.11.0