diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2009-11-12 13:22:12 -0800 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2009-11-17 16:25:38 -0800 |
commit | 4e7476f601e15cf4c52d7de44f0f775aaaedd094 (patch) | |
tree | 14abbda27b67e1d58cdef8a030f7e218db6f63c8 /src | |
parent | 5fbfd883386a8ff78bd6ca10ab761aff1b38e46d (diff) | |
download | external_mesa3d-4e7476f601e15cf4c52d7de44f0f775aaaedd094.zip external_mesa3d-4e7476f601e15cf4c52d7de44f0f775aaaedd094.tar.gz external_mesa3d-4e7476f601e15cf4c52d7de44f0f775aaaedd094.tar.bz2 |
ARB_fbo: Add missing GLX render opcode for glFramebufferTextureLayerEXT
Also regenerate the GLX protocol files from this change.
Diffstat (limited to 'src')
-rw-r--r-- | src/glx/x11/indirect.c | 20 | ||||
-rw-r--r-- | src/glx/x11/indirect.h | 1 | ||||
-rw-r--r-- | src/glx/x11/indirect_init.c | 4 | ||||
-rw-r--r-- | src/mesa/glapi/EXT_texture_array.xml | 1 |
4 files changed, 26 insertions, 0 deletions
diff --git a/src/glx/x11/indirect.c b/src/glx/x11/indirect.c index 3ca71f5..ea90ce4 100644 --- a/src/glx/x11/indirect.c +++ b/src/glx/x11/indirect.c @@ -10643,6 +10643,26 @@ __indirect_glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, } } +#define X_GLrop_FramebufferTextureLayerEXT 237 +void +__indirect_glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, + GLuint texture, GLint level, + GLint layer) +{ + __GLXcontext *const gc = __glXGetCurrentContext(); + const GLuint cmdlen = 24; + emit_header(gc->pc, X_GLrop_FramebufferTextureLayerEXT, cmdlen); + (void) memcpy((void *) (gc->pc + 4), (void *) (&target), 4); + (void) memcpy((void *) (gc->pc + 8), (void *) (&attachment), 4); + (void) memcpy((void *) (gc->pc + 12), (void *) (&texture), 4); + (void) memcpy((void *) (gc->pc + 16), (void *) (&level), 4); + (void) memcpy((void *) (gc->pc + 20), (void *) (&layer), 4); + gc->pc += cmdlen; + if (__builtin_expect(gc->pc > gc->limit, 0)) { + (void) __glXFlushRenderBuffer(gc, gc->pc); + } +} + # undef FASTCALL # undef NOINLINE diff --git a/src/glx/x11/indirect.h b/src/glx/x11/indirect.h index 4a1b81c..19a8c0d 100644 --- a/src/glx/x11/indirect.h +++ b/src/glx/x11/indirect.h @@ -712,6 +712,7 @@ extern HIDDEN GLboolean __indirect_glIsFramebufferEXT(GLuint framebuffer); extern HIDDEN GLboolean __indirect_glIsRenderbufferEXT(GLuint renderbuffer); extern HIDDEN void __indirect_glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); extern HIDDEN void __indirect_glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern HIDDEN void __indirect_glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); # undef HIDDEN # undef FASTCALL diff --git a/src/glx/x11/indirect_init.c b/src/glx/x11/indirect_init.c index aa9a6bb..73ca993 100644 --- a/src/glx/x11/indirect_init.c +++ b/src/glx/x11/indirect_init.c @@ -776,6 +776,10 @@ __GLapi * __glXNewIndirectAPI( void ) glAPI->BlitFramebufferEXT = __indirect_glBlitFramebufferEXT; + /* 329. GL_EXT_texture_array */ + + glAPI->FramebufferTextureLayerEXT = __indirect_glFramebufferTextureLayerEXT; + return glAPI; } diff --git a/src/mesa/glapi/EXT_texture_array.xml b/src/mesa/glapi/EXT_texture_array.xml index e5bd9f3..b5b8bd4 100644 --- a/src/mesa/glapi/EXT_texture_array.xml +++ b/src/mesa/glapi/EXT_texture_array.xml @@ -35,6 +35,7 @@ <param name="texture" type="GLuint"/> <param name="level" type="GLint"/> <param name="layer" type="GLint"/> + <glx rop="237"/> </function> </category> |