From 3fea5910b9db41252da28bf0ab8ed763d1a129f8 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 25 Aug 2006 19:57:37 +0000 Subject: Add a couple of the missing GL 2.0 functions. Enable GLX protocol for glBlendEquationSeparateEXT. Add missing enum "get" information for GL_EXT_texture_filter_anisotropic. --- src/glx/x11/glxextensions.c | 2 +- src/glx/x11/indirect.c | 13 +++++++++++++ src/glx/x11/indirect.h | 1 + src/glx/x11/indirect_init.c | 4 ++++ 4 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src/glx') diff --git a/src/glx/x11/glxextensions.c b/src/glx/x11/glxextensions.c index aefd57c2b9..be0acf0c52 100644 --- a/src/glx/x11/glxextensions.c +++ b/src/glx/x11/glxextensions.c @@ -141,7 +141,7 @@ static const struct extension_info known_gl_extensions[] = { { GL(EXT_abgr), VER(0,0), Y, N, N, N }, { GL(EXT_bgra), VER(1,2), Y, N, N, N }, { GL(EXT_blend_color), VER(1,4), Y, N, N, N }, - { GL(EXT_blend_equation_separate), VER(0,0), N, N, N, N }, + { GL(EXT_blend_equation_separate), VER(0,0), Y, N, N, N }, { GL(EXT_blend_func_separate), VER(1,4), Y, N, N, N }, { GL(EXT_blend_logic_op), VER(1,4), Y, N, N, N }, { GL(EXT_blend_minmax), VER(1,4), Y, N, N, N }, diff --git a/src/glx/x11/indirect.c b/src/glx/x11/indirect.c index 01d086cb90..e9d6422102 100644 --- a/src/glx/x11/indirect.c +++ b/src/glx/x11/indirect.c @@ -8257,6 +8257,19 @@ __indirect_glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte * } } +#define X_GLrop_BlendEquationSeparateEXT 4228 +void +__indirect_glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeA) +{ + __GLXcontext * const gc = __glXGetCurrentContext(); + const GLuint cmdlen = 12; + emit_header(gc->pc, X_GLrop_BlendEquationSeparateEXT, cmdlen); + (void) memcpy((void *)(gc->pc + 4), (void *)(&modeRGB), 4); + (void) memcpy((void *)(gc->pc + 8), (void *)(&modeA), 4); + gc->pc += cmdlen; + if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } +} + #define X_GLrop_BindFramebufferEXT 4319 void __indirect_glBindFramebufferEXT(GLenum target, GLuint framebuffer) diff --git a/src/glx/x11/indirect.h b/src/glx/x11/indirect.h index decfda298a..2e953ca011 100644 --- a/src/glx/x11/indirect.h +++ b/src/glx/x11/indirect.h @@ -685,6 +685,7 @@ extern HIDDEN void __indirect_glProgramNamedParameter4dNV(GLuint id, GLsizei len extern HIDDEN void __indirect_glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v); extern HIDDEN void __indirect_glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); extern HIDDEN void __indirect_glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v); +extern HIDDEN void __indirect_glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeA); extern HIDDEN void __indirect_glBindFramebufferEXT(GLenum target, GLuint framebuffer); extern HIDDEN void __indirect_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer); extern HIDDEN GLenum __indirect_glCheckFramebufferStatusEXT(GLenum target); diff --git a/src/glx/x11/indirect_init.c b/src/glx/x11/indirect_init.c index 5c1de7c56b..43c090adc5 100644 --- a/src/glx/x11/indirect_init.c +++ b/src/glx/x11/indirect_init.c @@ -760,6 +760,10 @@ __GLapi * __glXNewIndirectAPI( void ) glAPI->ProgramNamedParameter4fNV = __indirect_glProgramNamedParameter4fNV; glAPI->ProgramNamedParameter4fvNV = __indirect_glProgramNamedParameter4fvNV; + /* 299. GL_EXT_blend_equation_separate */ + + glAPI->BlendEquationSeparateEXT = __indirect_glBlendEquationSeparateEXT; + /* 310. GL_EXT_framebuffer_object */ glAPI->RenderbufferStorageEXT = __indirect_glRenderbufferStorageEXT; -- cgit v1.2.3