aboutsummaryrefslogtreecommitdiffstats
path: root/src/glx
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2009-11-12 13:22:12 -0800
committerIan Romanick <[email protected]>2009-11-17 16:25:38 -0800
commit4e7476f601e15cf4c52d7de44f0f775aaaedd094 (patch)
tree14abbda27b67e1d58cdef8a030f7e218db6f63c8 /src/glx
parent5fbfd883386a8ff78bd6ca10ab761aff1b38e46d (diff)
ARB_fbo: Add missing GLX render opcode for glFramebufferTextureLayerEXT
Also regenerate the GLX protocol files from this change.
Diffstat (limited to 'src/glx')
-rw-r--r--src/glx/x11/indirect.c20
-rw-r--r--src/glx/x11/indirect.h1
-rw-r--r--src/glx/x11/indirect_init.c4
3 files changed, 25 insertions, 0 deletions
diff --git a/src/glx/x11/indirect.c b/src/glx/x11/indirect.c
index 3ca71f56ff8..ea90ce44630 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 4a1b81ca6e6..19a8c0d134a 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 aa9a6bb2b0e..73ca993027b 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;
}