summaryrefslogtreecommitdiff
path: root/src/glx/glxclient.h
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2010-05-21 10:36:56 -0400
committerKristian Høgsberg <krh@bitplanet.net>2010-05-21 23:24:37 -0400
commit643b2af0203764cb9f0a5b9e082937ab3f243523 (patch)
tree685afc7329526395fd7865017d05893c9bd3396d /src/glx/glxclient.h
parent4db0c760195c67f1bc114fdfb8464791030a526c (diff)
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.
Diffstat (limited to 'src/glx/glxclient.h')
-rw-r--r--src/glx/glxclient.h15
1 files changed, 15 insertions, 0 deletions
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.