dri: Remove redundant createNewContext function from __DRIimageDriverExtension
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 12 Nov 2013 00:35:35 +0000 (16:35 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 13 Nov 2013 00:08:17 +0000 (16:08 -0800)
createContextAttribs is a superset of what createNewContext provides.
Also remove the function typedef, since createNewContext is deprecated
and no longer used in  multiple interfaces.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Cc: "10.0" <mesa-stable@lists.freedesktop.org>
include/GL/internal/dri_interface.h
src/glx/dri3_glx.c
src/mesa/drivers/dri/common/dri_util.c

index ed432576400c6cd70d52c2ff672a099a6396cb37..b012570ae133cdb077c95b0623cbe38a029303a6 100644 (file)
@@ -782,12 +782,6 @@ typedef __DRIdrawable *
                               const __DRIconfig *config,
                               void *loaderPrivate);
 
-typedef __DRIcontext *
-(*__DRIcreateNewContextFunc)(__DRIscreen *screen,
-                             const __DRIconfig *config,
-                             __DRIcontext *shared,
-                             void *loaderPrivate);
-
 typedef __DRIcontext *
 (*__DRIcreateContextAttribsFunc)(__DRIscreen *screen,
                                  int api,
@@ -949,7 +943,10 @@ struct __DRIdri2ExtensionRec {
                                    void *loaderPrivate);
 
    __DRIcreateNewDrawableFunc   createNewDrawable;
-   __DRIcreateNewContextFunc    createNewContext;
+   __DRIcontext *(*createNewContext)(__DRIscreen *screen,
+                                     const __DRIconfig *config,
+                                     __DRIcontext *shared,
+                                     void *loaderPrivate);
 
    /* Since version 2 */
    __DRIgetAPIMaskFunc          getAPIMask;
@@ -1405,7 +1402,6 @@ struct __DRIimageDriverExtensionRec {
    /* Common DRI functions, shared with DRI2 */
    __DRIcreateNewScreen2Func            createNewScreen2;
    __DRIcreateNewDrawableFunc           createNewDrawable;
-   __DRIcreateNewContextFunc            createNewContext;
    __DRIcreateContextAttribsFunc        createContextAttribs;
    __DRIgetAPIMaskFunc                  getAPIMask;
 };
index 0c8e0646298398f95021c7e153cabcd1cd1b490a..b047cc880c874913d4862221142e0720e90c5ecb 100644 (file)
@@ -159,51 +159,6 @@ dri3_unbind_context(struct glx_context *context, struct glx_context *new)
    (*psc->core->unbindContext) (pcp->driContext);
 }
 
-static struct glx_context *
-dri3_create_context(struct glx_screen *base,
-                    struct glx_config *config_base,
-                    struct glx_context *shareList, int renderType)
-{
-   struct dri3_context *pcp, *pcp_shared;
-   struct dri3_screen *psc = (struct dri3_screen *) base;
-   __GLXDRIconfigPrivate *config = (__GLXDRIconfigPrivate *) config_base;
-   __DRIcontext *shared = NULL;
-
-   if (shareList) {
-      /* If the shareList context is not a DRI3 context, we cannot possibly
-       * create a DRI3 context that shares it.
-       */
-      if (shareList->vtable->destroy != dri3_destroy_context) {
-         return NULL;
-      }
-
-      pcp_shared = (struct dri3_context *) shareList;
-      shared = pcp_shared->driContext;
-   }
-
-   pcp = calloc(1, sizeof *pcp);
-   if (pcp == NULL)
-      return NULL;
-
-   if (!glx_context_init(&pcp->base, &psc->base, &config->base)) {
-      free(pcp);
-      return NULL;
-   }
-
-   pcp->driContext =
-      (*psc->image_driver->createNewContext) (psc->driScreen,
-                                              config->driConfig, shared, pcp);
-
-   if (pcp->driContext == NULL) {
-      free(pcp);
-      return NULL;
-   }
-
-   pcp->base.vtable = &dri3_context_vtable;
-
-   return &pcp->base;
-}
-
 static struct glx_context *
 dri3_create_context_attribs(struct glx_screen *base,
                             struct glx_config *config_base,
@@ -299,6 +254,17 @@ error_exit:
    return NULL;
 }
 
+static struct glx_context *
+dri3_create_context(struct glx_screen *base,
+                    struct glx_config *config_base,
+                    struct glx_context *shareList, int renderType)
+{
+   unsigned int error;
+
+   return dri3_create_context_attribs(base, config_base, shareList,
+                                      0, NULL, &error);
+}
+
 static void
 dri3_destroy_drawable(__GLXDRIdrawable *base)
 {
index 86cf24cb881220fda97ac055df9eacb1985eb14f..44e47f94f8245169a95e418879727c1b450d72de 100644 (file)
@@ -868,7 +868,6 @@ const __DRIimageDriverExtension driImageDriverExtension = {
 
     .createNewScreen2           = driCreateNewScreen2,
     .createNewDrawable          = driCreateNewDrawable,
-    .createNewContext           = driCreateNewContext,
     .getAPIMask                 = driGetAPIMask,
     .createContextAttribs       = driCreateContextAttribs,
 };