summaryrefslogtreecommitdiff
path: root/src/glx/dri2_glx.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2010-07-23 16:15:31 -0400
committerKristian Høgsberg <krh@bitplanet.net>2010-07-23 22:05:53 -0400
commit6ec39db726beead21d97bf64ddbe1f0b2d2d6ca1 (patch)
tree65a665c1d10ab43618a2c508081a7cc7d31ab9ab /src/glx/dri2_glx.c
parentb5dedd7c3b4425127d8b85b7e8df0ecda4009fd7 (diff)
glx: Refactor and simplify context creation
This lets us better separate context creation between the different backends.
Diffstat (limited to 'src/glx/dri2_glx.c')
-rw-r--r--src/glx/dri2_glx.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index 02c0f9f24e..58f09ed86a 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -154,9 +154,9 @@ dri2UnbindContext(__GLXcontext *context)
}
static __GLXcontext *
-dri2CreateContext(__GLXscreenConfigs *base,
- const __GLcontextModes * mode,
- GLXContext shareList, int renderType)
+dri2_create_context(__GLXscreenConfigs *base,
+ const __GLcontextModes * mode,
+ GLXContext shareList, int renderType)
{
struct dri2_context *pcp, *pcp_shared;
struct dri2_screen *psc = (struct dri2_screen *) base;
@@ -718,6 +718,9 @@ dri2BindExtensions(struct dri2_screen *psc, const __DRIextension **extensions)
}
}
+static const struct glx_screen_vtable dri2_screen_vtable = {
+ dri2_create_context
+};
static __GLXscreenConfigs *
dri2CreateScreen(int screen, __GLXdisplayPrivate * priv)
@@ -811,10 +814,10 @@ dri2CreateScreen(int screen, __GLXdisplayPrivate * priv)
psc->driver_configs = driver_configs;
+ psc->base.vtable = &dri2_screen_vtable;
psp = &psc->vtable;
psc->base.driScreen = psp;
psp->destroyScreen = dri2DestroyScreen;
- psp->createContext = dri2CreateContext;
psp->createDrawable = dri2CreateDrawable;
psp->swapBuffers = dri2SwapBuffers;
psp->getDrawableMSC = NULL;