| From b277df63db24eb181ae53904d4267002e4345023 Mon Sep 17 00:00:00 2001 |
| From: Brendan King <Brendan.King@imgtec.com> |
| Date: Mon, 10 Mar 2014 13:43:45 +0000 |
| Subject: [PATCH 05/33] Separate EXT_framebuffer_object from ARB version |
| |
| This patch separates the EXT_framebuffer_object entry points from the ARB |
| equivalents. |
| |
| Probably not all this separation is necessary; it looks like only |
| BindRenderbuffer |
| BindFramebuffer |
| GetFramebufferAttachmentParameteriv |
| take advantage of the split. |
| |
| Next time this patch is implemented, see if it can be trimmed down to |
| just the above functions, as it may be more upstreamable. |
| |
| We may need to implement the EXT restrictions if we want to upstream. |
| --- |
| src/mapi/glapi/gen/EXT_framebuffer_object.xml | 30 +++++----- |
| src/mesa/main/fbobject.c | 82 +++++++++++++++++++++++++++ |
| src/mesa/main/fbobject.h | 54 ++++++++++++++++++ |
| src/mesa/main/genmipmap.c | 6 ++ |
| src/mesa/main/genmipmap.h | 3 + |
| 5 files changed, 160 insertions(+), 15 deletions(-) |
| |
| diff --git a/src/mapi/glapi/gen/EXT_framebuffer_object.xml b/src/mapi/glapi/gen/EXT_framebuffer_object.xml |
| index 310e8ee..0057a8a 100644 |
| --- a/src/mapi/glapi/gen/EXT_framebuffer_object.xml |
| +++ b/src/mapi/glapi/gen/EXT_framebuffer_object.xml |
| @@ -70,7 +70,7 @@ |
| </enum> |
| <enum name="INVALID_FRAMEBUFFER_OPERATION_EXT" value="0x0506"/> |
| |
| - <function name="IsRenderbufferEXT" alias="IsRenderbuffer"> |
| + <function name="IsRenderbufferEXT"> |
| <param name="renderbuffer" type="GLuint"/> |
| <return type="GLboolean"/> |
| </function> |
| @@ -81,30 +81,30 @@ |
| <glx rop="4316"/> |
| </function> |
| |
| - <function name="DeleteRenderbuffersEXT" alias="DeleteRenderbuffers"> |
| + <function name="DeleteRenderbuffersEXT"> |
| <param name="n" type="GLsizei"/> |
| <param name="renderbuffers" type="const GLuint *"/> |
| </function> |
| |
| - <function name="GenRenderbuffersEXT" alias="GenRenderbuffers"> |
| + <function name="GenRenderbuffersEXT"> |
| <param name="n" type="GLsizei"/> |
| <param name="renderbuffers" type="GLuint *"/> |
| </function> |
| |
| - <function name="RenderbufferStorageEXT" alias="RenderbufferStorage"> |
| + <function name="RenderbufferStorageEXT"> |
| <param name="target" type="GLenum"/> |
| <param name="internalformat" type="GLenum"/> |
| <param name="width" type="GLsizei"/> |
| <param name="height" type="GLsizei"/> |
| </function> |
| |
| - <function name="GetRenderbufferParameterivEXT" alias="GetRenderbufferParameteriv"> |
| + <function name="GetRenderbufferParameterivEXT"> |
| <param name="target" type="GLenum"/> |
| <param name="pname" type="GLenum"/> |
| <param name="params" type="GLint *"/> |
| </function> |
| |
| - <function name="IsFramebufferEXT" alias="IsFramebuffer"> |
| + <function name="IsFramebufferEXT"> |
| <param name="framebuffer" type="GLuint"/> |
| <return type="GLboolean"/> |
| </function> |
| @@ -115,22 +115,22 @@ |
| <glx rop="4319"/> |
| </function> |
| |
| - <function name="DeleteFramebuffersEXT" alias="DeleteFramebuffers"> |
| + <function name="DeleteFramebuffersEXT"> |
| <param name="n" type="GLsizei"/> |
| <param name="framebuffers" type="const GLuint *"/> |
| </function> |
| |
| - <function name="GenFramebuffersEXT" alias="GenFramebuffers"> |
| + <function name="GenFramebuffersEXT"> |
| <param name="n" type="GLsizei"/> |
| <param name="framebuffers" type="GLuint *"/> |
| </function> |
| |
| - <function name="CheckFramebufferStatusEXT" alias="CheckFramebufferStatus"> |
| + <function name="CheckFramebufferStatusEXT"> |
| <param name="target" type="GLenum"/> |
| <return type="GLenum"/> |
| </function> |
| |
| - <function name="FramebufferTexture1DEXT" alias="FramebufferTexture1D"> |
| + <function name="FramebufferTexture1DEXT"> |
| <param name="target" type="GLenum"/> |
| <param name="attachment" type="GLenum"/> |
| <param name="textarget" type="GLenum"/> |
| @@ -138,7 +138,7 @@ |
| <param name="level" type="GLint"/> |
| </function> |
| |
| - <function name="FramebufferTexture2DEXT" alias="FramebufferTexture2D"> |
| + <function name="FramebufferTexture2DEXT"> |
| <param name="target" type="GLenum"/> |
| <param name="attachment" type="GLenum"/> |
| <param name="textarget" type="GLenum"/> |
| @@ -146,7 +146,7 @@ |
| <param name="level" type="GLint"/> |
| </function> |
| |
| - <function name="FramebufferTexture3DEXT" alias="FramebufferTexture3D"> |
| + <function name="FramebufferTexture3DEXT"> |
| <param name="target" type="GLenum"/> |
| <param name="attachment" type="GLenum"/> |
| <param name="textarget" type="GLenum"/> |
| @@ -155,21 +155,21 @@ |
| <param name="zoffset" type="GLint"/> |
| </function> |
| |
| - <function name="FramebufferRenderbufferEXT" alias="FramebufferRenderbuffer"> |
| + <function name="FramebufferRenderbufferEXT"> |
| <param name="target" type="GLenum"/> |
| <param name="attachment" type="GLenum"/> |
| <param name="renderbuffertarget" type="GLenum"/> |
| <param name="renderbuffer" type="GLuint"/> |
| </function> |
| |
| - <function name="GetFramebufferAttachmentParameterivEXT" alias="GetFramebufferAttachmentParameteriv"> |
| + <function name="GetFramebufferAttachmentParameterivEXT"> |
| <param name="target" type="GLenum"/> |
| <param name="attachment" type="GLenum"/> |
| <param name="pname" type="GLenum"/> |
| <param name="params" type="GLint *"/> |
| </function> |
| |
| - <function name="GenerateMipmapEXT" alias="GenerateMipmap"> |
| + <function name="GenerateMipmapEXT"> |
| <param name="target" type="GLenum"/> |
| </function> |
| </category> |
| diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c |
| index 46bc129..4db337d 100644 |
| --- a/src/mesa/main/fbobject.c |
| +++ b/src/mesa/main/fbobject.c |
| @@ -1631,6 +1631,11 @@ _mesa_detach_renderbuffer(struct gl_context *ctx, |
| return progress; |
| } |
| |
| +GLboolean GLAPIENTRY |
| +_mesa_IsRenderbufferEXT(GLuint renderbuffer) |
| +{ |
| + return _mesa_IsRenderbuffer(renderbuffer); |
| +} |
| |
| void GLAPIENTRY |
| _mesa_DeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers) |
| @@ -2309,6 +2314,12 @@ renderbuffer_storage_target(GLenum target, GLenum internalFormat, |
| |
| |
| void GLAPIENTRY |
| +_mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers) |
| +{ |
| + _mesa_DeleteRenderbuffers(n, renderbuffers); |
| +} |
| + |
| +void GLAPIENTRY |
| _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) |
| { |
| struct gl_renderbuffer *rb; |
| @@ -2338,6 +2349,11 @@ _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) |
| ctx->Driver.EGLImageTargetRenderbufferStorage(ctx, rb, image); |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers) |
| +{ |
| + _mesa_GenRenderbuffers(n, renderbuffers); |
| +} |
| |
| /** |
| * Helper function for _mesa_GetRenderbufferParameteriv() and |
| @@ -2370,6 +2386,12 @@ _mesa_RenderbufferStorage(GLenum target, GLenum internalFormat, |
| NO_SAMPLES, "glRenderbufferStorage"); |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, |
| + GLsizei width, GLsizei height) |
| +{ |
| + _mesa_RenderbufferStorage(target, internalFormat, width, height); |
| +} |
| |
| void GLAPIENTRY |
| _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples, |
| @@ -2507,6 +2529,11 @@ _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, |
| "glGetNamedRenderbufferParameteriv"); |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params) |
| +{ |
| + _mesa_GetRenderbufferParameteriv(target, pname, params); |
| +} |
| |
| GLboolean GLAPIENTRY |
| _mesa_IsFramebuffer(GLuint framebuffer) |
| @@ -2521,6 +2548,11 @@ _mesa_IsFramebuffer(GLuint framebuffer) |
| return GL_FALSE; |
| } |
| |
| +GLboolean GLAPIENTRY |
| +_mesa_IsFramebufferEXT(GLuint framebuffer) |
| +{ |
| + return _mesa_IsFramebuffer(framebuffer); |
| +} |
| |
| /** |
| * Check if any of the attachments of the given framebuffer are textures |
| @@ -2759,6 +2791,11 @@ _mesa_DeleteFramebuffers(GLsizei n, const GLuint *framebuffers) |
| } |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers) |
| +{ |
| + _mesa_DeleteFramebuffers(n, framebuffers); |
| +} |
| |
| /** |
| * This is the implementation for glGenFramebuffers and glCreateFramebuffers. |
| @@ -2808,6 +2845,11 @@ create_framebuffers(GLsizei n, GLuint *framebuffers, bool dsa) |
| _mesa_HashUnlockMutex(ctx->Shared->FrameBuffers); |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_GenFramebuffersEXT(GLsizei n, GLuint *framebuffers) |
| +{ |
| + _mesa_GenFramebuffers(n, framebuffers); |
| +} |
| |
| void GLAPIENTRY |
| _mesa_GenFramebuffers(GLsizei n, GLuint *framebuffers) |
| @@ -2847,6 +2889,11 @@ _mesa_check_framebuffer_status(struct gl_context *ctx, |
| return buffer->_Status; |
| } |
| |
| +GLenum GLAPIENTRY |
| +_mesa_CheckFramebufferStatusEXT(GLenum target) |
| +{ |
| + return _mesa_CheckFramebufferStatus(target); |
| +} |
| |
| GLenum GLAPIENTRY |
| _mesa_CheckFramebufferStatus_no_error(GLenum target) |
| @@ -3413,6 +3460,12 @@ _mesa_FramebufferTexture1D_no_error(GLenum target, GLenum attachment, |
| texture, level, 0); |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_FramebufferTexture1DEXT(GLenum target, GLenum attachment, |
| + GLenum textarget, GLuint texture, GLint level) |
| +{ |
| + _mesa_FramebufferTexture1D(target, attachment, textarget, texture, level); |
| +} |
| |
| void GLAPIENTRY |
| _mesa_FramebufferTexture1D(GLenum target, GLenum attachment, |
| @@ -3441,6 +3494,12 @@ _mesa_FramebufferTexture2D(GLenum target, GLenum attachment, |
| level, 0, "glFramebufferTexture2D"); |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment, |
| + GLenum textarget, GLuint texture, GLint level) |
| +{ |
| + _mesa_FramebufferTexture2D(target, attachment, textarget, texture, level); |
| +} |
| |
| void GLAPIENTRY |
| _mesa_FramebufferTexture3D_no_error(GLenum target, GLenum attachment, |
| @@ -3552,6 +3611,15 @@ frame_buffer_texture(GLuint framebuffer, GLenum target, |
| } |
| |
| void GLAPIENTRY |
| +_mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment, |
| + GLenum textarget, GLuint texture, |
| + GLint level, GLint zoffset) |
| +{ |
| + _mesa_FramebufferTexture3D(target, attachment, textarget, texture, |
| + level, zoffset); |
| +} |
| + |
| +void GLAPIENTRY |
| _mesa_FramebufferTextureLayer_no_error(GLenum target, GLenum attachment, |
| GLuint texture, GLint level, |
| GLint layer) |
| @@ -3735,6 +3803,14 @@ _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment, |
| renderbuffer, "glFramebufferRenderbuffer"); |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, |
| + GLenum renderbufferTarget, |
| + GLuint renderbuffer) |
| +{ |
| + _mesa_FramebufferRenderbuffer(target, attachment, renderbufferTarget, |
| + renderbuffer); |
| +} |
| |
| void GLAPIENTRY |
| _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, |
| @@ -4091,6 +4167,12 @@ invalid_pname_enum: |
| return; |
| } |
| |
| +void GLAPIENTRY |
| +_mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, |
| + GLenum pname, GLint *params) |
| +{ |
| + _mesa_GetFramebufferAttachmentParameteriv(target, attachment, pname, params); |
| +} |
| |
| void GLAPIENTRY |
| _mesa_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, |
| diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h |
| index 6e10c18..c417f0a 100644 |
| --- a/src/mesa/main/fbobject.h |
| +++ b/src/mesa/main/fbobject.h |
| @@ -143,6 +143,9 @@ _mesa_bind_framebuffers(struct gl_context *ctx, |
| extern GLboolean GLAPIENTRY |
| _mesa_IsRenderbuffer(GLuint renderbuffer); |
| |
| +extern GLboolean GLAPIENTRY |
| +_mesa_IsRenderbufferEXT(GLuint renderbuffer); |
| + |
| extern void GLAPIENTRY |
| _mesa_BindRenderbuffer(GLenum target, GLuint renderbuffer); |
| |
| @@ -156,12 +159,18 @@ void GLAPIENTRY |
| _mesa_GenRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers); |
| |
| extern void GLAPIENTRY |
| +_mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers); |
| + |
| +extern void GLAPIENTRY |
| _mesa_GenRenderbuffers(GLsizei n, GLuint *renderbuffers); |
| |
| void GLAPIENTRY |
| _mesa_CreateRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers); |
| |
| extern void GLAPIENTRY |
| +_mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers); |
| + |
| +extern void GLAPIENTRY |
| _mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers); |
| |
| extern void GLAPIENTRY |
| @@ -169,6 +178,10 @@ _mesa_RenderbufferStorage(GLenum target, GLenum internalformat, |
| GLsizei width, GLsizei height); |
| |
| extern void GLAPIENTRY |
| +_mesa_RenderbufferStorageEXT(GLenum target, GLenum internalformat, |
| + GLsizei width, GLsizei height); |
| + |
| +extern void GLAPIENTRY |
| _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples, |
| GLenum internalformat, |
| GLsizei width, GLsizei height); |
| @@ -193,6 +206,10 @@ extern void GLAPIENTRY |
| _mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname, |
| GLint *params); |
| |
| +extern void GLAPIENTRY |
| +_mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, |
| + GLint *params); |
| + |
| void GLAPIENTRY |
| _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, |
| GLint *params); |
| @@ -200,6 +217,9 @@ _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, |
| extern GLboolean GLAPIENTRY |
| _mesa_IsFramebuffer(GLuint framebuffer); |
| |
| +extern GLboolean GLAPIENTRY |
| +_mesa_IsFramebufferEXT(GLuint framebuffer); |
| + |
| extern void GLAPIENTRY |
| _mesa_BindFramebuffer(GLenum target, GLuint framebuffer); |
| |
| @@ -210,9 +230,15 @@ extern void GLAPIENTRY |
| _mesa_DeleteFramebuffers(GLsizei n, const GLuint *framebuffers); |
| |
| extern void GLAPIENTRY |
| +_mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers); |
| + |
| +extern void GLAPIENTRY |
| _mesa_GenFramebuffers(GLsizei n, GLuint *framebuffers); |
| |
| extern void GLAPIENTRY |
| +_mesa_GenFramebuffersEXT(GLsizei n, GLuint *framebuffers); |
| + |
| +extern void GLAPIENTRY |
| _mesa_CreateFramebuffers(GLsizei n, GLuint *framebuffers); |
| |
| GLenum GLAPIENTRY |
| @@ -222,6 +248,9 @@ extern GLenum GLAPIENTRY |
| _mesa_CheckFramebufferStatus(GLenum target); |
| |
| extern GLenum GLAPIENTRY |
| +_mesa_CheckFramebufferStatusEXT(GLenum target); |
| + |
| +extern GLenum GLAPIENTRY |
| _mesa_CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target); |
| |
| extern void GLAPIENTRY |
| @@ -236,6 +265,11 @@ extern void GLAPIENTRY |
| _mesa_FramebufferTexture2D_no_error(GLenum target, GLenum attachment, |
| GLenum textarget, GLuint texture, |
| GLint level); |
| + |
| +extern void GLAPIENTRY |
| +_mesa_FramebufferTexture1DEXT(GLenum target, GLenum attachment, |
| + GLenum textarget, GLuint texture, GLint level); |
| + |
| extern void GLAPIENTRY |
| _mesa_FramebufferTexture2D(GLenum target, GLenum attachment, |
| GLenum textarget, GLuint texture, GLint level); |
| @@ -244,6 +278,11 @@ extern void GLAPIENTRY |
| _mesa_FramebufferTexture3D_no_error(GLenum target, GLenum attachment, |
| GLenum textarget, GLuint texture, |
| GLint level, GLint layer); |
| + |
| +extern void GLAPIENTRY |
| +_mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment, |
| + GLenum textarget, GLuint texture, GLint level); |
| + |
| extern void GLAPIENTRY |
| _mesa_FramebufferTexture3D(GLenum target, GLenum attachment, |
| GLenum textarget, GLuint texture, |
| @@ -253,6 +292,12 @@ extern void GLAPIENTRY |
| _mesa_FramebufferTextureLayer_no_error(GLenum target, GLenum attachment, |
| GLuint texture, GLint level, |
| GLint layer); |
| + |
| +extern void GLAPIENTRY |
| +_mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment, |
| + GLenum textarget, GLuint texture, |
| + GLint level, GLint zoffset); |
| + |
| extern void GLAPIENTRY |
| _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment, |
| GLuint texture, GLint level, GLint layer); |
| @@ -286,6 +331,11 @@ _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment, |
| GLuint renderbuffer); |
| |
| extern void GLAPIENTRY |
| +_mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, |
| + GLenum renderbuffertarget, |
| + GLuint renderbuffer); |
| + |
| +extern void GLAPIENTRY |
| _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, |
| GLenum renderbuffertarget, |
| GLuint renderbuffer); |
| @@ -307,6 +357,10 @@ _mesa_GetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, |
| GLint *param); |
| |
| extern void GLAPIENTRY |
| +_mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, |
| + GLenum pname, GLint *params); |
| + |
| +extern void GLAPIENTRY |
| _mesa_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, |
| const GLenum *attachments, GLint x, GLint y, |
| GLsizei width, GLsizei height); |
| diff --git a/src/mesa/main/genmipmap.c b/src/mesa/main/genmipmap.c |
| index be49136..d1e91ec 100644 |
| --- a/src/mesa/main/genmipmap.c |
| +++ b/src/mesa/main/genmipmap.c |
| @@ -211,3 +211,9 @@ _mesa_GenerateTextureMipmap(GLuint texture) |
| |
| generate_texture_mipmap(ctx, texObj, texObj->Target, true); |
| } |
| + |
| +void GLAPIENTRY |
| +_mesa_GenerateMipmapEXT(GLenum target) |
| +{ |
| + _mesa_GenerateMipmap(target); |
| +} |
| diff --git a/src/mesa/main/genmipmap.h b/src/mesa/main/genmipmap.h |
| index 94f7f7a..a414fd6 100644 |
| --- a/src/mesa/main/genmipmap.h |
| +++ b/src/mesa/main/genmipmap.h |
| @@ -39,6 +39,9 @@ extern void GLAPIENTRY |
| _mesa_GenerateMipmap(GLenum target); |
| |
| extern void GLAPIENTRY |
| +_mesa_GenerateMipmapEXT(GLenum target); |
| + |
| +extern void GLAPIENTRY |
| _mesa_GenerateTextureMipmap(GLuint texture); |
| |
| #endif /* GENMIPMAP_H */ |
| -- |
| 2.7.4 |
| |