From 643b2af0203764cb9f0a5b9e082937ab3f243523 Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Fri, 21 May 2010 10:36:56 -0400 Subject: glx: Split tfp functions out to context vtable This introduces a new per-context vtable, which lets us clean up all the #ifdef's a bit and move the DRI2 specific implementation into dri2_glx.c. --- src/glx/glxclient.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/glx/glxclient.h') diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index 57d254ea98..78c5f33d4d 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -249,6 +249,14 @@ typedef struct __GLXattributeMachineRec __GLXattribute **stackPointer; } __GLXattributeMachine; +struct glx_context_vtable { + void (*bind_tex_image)(Display * dpy, + GLXDrawable drawable, + int buffer, const int *attrib_list); + void (*release_tex_image)(Display * dpy, GLXDrawable drawable, int buffer); + +}; + /** * GLX state that needs to be kept on the client. One of these records * exist for each context that has been made current by this client. @@ -457,6 +465,8 @@ struct __GLXcontextRec unsigned long thread_id; char gl_extension_bits[__GL_EXT_BYTES]; + + const struct glx_context_vtable *vtable; }; #define __glXSetError(gc,code) \ @@ -511,6 +521,11 @@ struct __GLXscreenConfigsRec */ char *effectiveGLXexts; + /** + * Context vtable to use for direct contexts on this screen + */ + const struct glx_context_vtable *direct_context_vtable; + #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /** * Per screen direct rendering interface functions and data. -- cgit v1.2.3