aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/drivers/dri/common/drisw_util.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-02-04 16:20:01 +0000
committermarha <marha@users.sourceforge.net>2011-02-04 16:20:01 +0000
commit39522c7dc587b335b0e0e00fc68f98e6a7a5c7bd (patch)
treeed5244b4eba2647e525e8dd78e56763b55a7c723 /mesalib/src/mesa/drivers/dri/common/drisw_util.c
parent83a4fe0dc71aafbef11477b284abe530d3877556 (diff)
downloadvcxsrv-39522c7dc587b335b0e0e00fc68f98e6a7a5c7bd.tar.gz
vcxsrv-39522c7dc587b335b0e0e00fc68f98e6a7a5c7bd.tar.bz2
vcxsrv-39522c7dc587b335b0e0e00fc68f98e6a7a5c7bd.zip
libfontenc libXinerama mesa git update 4 feb 2011
Diffstat (limited to 'mesalib/src/mesa/drivers/dri/common/drisw_util.c')
-rw-r--r--mesalib/src/mesa/drivers/dri/common/drisw_util.c45
1 files changed, 44 insertions, 1 deletions
diff --git a/mesalib/src/mesa/drivers/dri/common/drisw_util.c b/mesalib/src/mesa/drivers/dri/common/drisw_util.c
index 1529c23b1..1bdb6d893 100644
--- a/mesalib/src/mesa/drivers/dri/common/drisw_util.c
+++ b/mesalib/src/mesa/drivers/dri/common/drisw_util.c
@@ -121,6 +121,48 @@ driCreateNewContext(__DRIscreen *psp, const __DRIconfig *config,
return pcp;
}
+static __DRIcontext *
+driCreateNewContextForAPI(__DRIscreen *psp, int api,
+ const __DRIconfig *config,
+ __DRIcontext *shared, void *data)
+{
+ __DRIcontext *pcp;
+ void * const shareCtx = (shared != NULL) ? shared->driverPrivate : NULL;
+ gl_api mesa_api;
+
+ switch (api) {
+ case __DRI_API_OPENGL:
+ mesa_api = API_OPENGL;
+ break;
+ case __DRI_API_GLES:
+ mesa_api = API_OPENGLES;
+ break;
+ case __DRI_API_GLES2:
+ mesa_api = API_OPENGLES2;
+ break;
+ default:
+ return NULL;
+ }
+
+ pcp = CALLOC_STRUCT(__DRIcontextRec);
+ if (!pcp)
+ return NULL;
+
+ pcp->loaderPrivate = data;
+
+ pcp->driScreenPriv = psp;
+ pcp->driDrawablePriv = NULL;
+ pcp->driReadablePriv = NULL;
+
+ if (!driDriverAPI.CreateContext(mesa_api,
+ &config->modes, pcp, shareCtx)) {
+ FREE(pcp);
+ return NULL;
+ }
+
+ return pcp;
+}
+
static void
driDestroyContext(__DRIcontext *pcp)
{
@@ -269,5 +311,6 @@ const __DRIcoreExtension driCoreExtension = {
const __DRIswrastExtension driSWRastExtension = {
{ __DRI_SWRAST, __DRI_SWRAST_VERSION },
driCreateNewScreen,
- driCreateNewDrawable
+ driCreateNewDrawable,
+ driCreateNewContextForAPI
};