summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/common/dri_util.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@hinata.boston.redhat.com>2007-05-10 17:14:38 -0400
committerKristian Høgsberg <krh@redhat.com>2007-10-10 17:07:26 -0400
commit4ff95e78e19e5902352ea3759d32d9f013255f42 (patch)
tree772c6e1c9b384bb2a19e929db47c872145043524 /src/mesa/drivers/dri/common/dri_util.c
parentb068af2f3b890bec26a186e9d0bdd3d44c17cd4d (diff)
Drop createDrawable and destroyDrawable fron DRIinterfaceMethods.
All the DRI driver did was call the createDrawable callback immediately upon entry to DRIscreen::createNewDrawable to get the drm_drawable_t. We can just call that before calling into the DRI driver and pass the returned drm_drawable_t as an argument to the DRI entry point. Likewise for destroyDrawable. Also, DRIdrawablePrivate::draw isn't used anywhere, and since the driver no longer needs the XID of the drawable we can now drop that.
Diffstat (limited to 'src/mesa/drivers/dri/common/dri_util.c')
-rw-r--r--src/mesa/drivers/dri/common/dri_util.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
index 2b5d6f0a59..dd7068ad10 100644
--- a/src/mesa/drivers/dri/common/dri_util.c
+++ b/src/mesa/drivers/dri/common/dri_util.c
@@ -59,7 +59,8 @@ static int driQueryFrameTracking( void *priv,
static void *driCreateNewDrawable(__DRIscreen *screen,
const __GLcontextModes *modes,
- __DRIid draw, __DRIdrawable *pdraw,
+ __DRIdrawable *pdraw,
+ drm_drawable_t hwDrawable,
int renderType, const int *attrs);
static void driDestroyDrawable(void *drawablePrivate);
@@ -286,7 +287,7 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
- if (! (*dri_interface->getDrawableInfo)(pdp->driScreenPriv->psc, pdp->draw,
+ if (! (*dri_interface->getDrawableInfo)(pdp->pdraw,
&pdp->index, &pdp->lastStamp,
&pdp->x, &pdp->y, &pdp->w, &pdp->h,
&pdp->numClipRects, &pdp->pClipRects,
@@ -435,8 +436,8 @@ static void driCopySubBuffer( void *drawablePrivate,
*/
static void *driCreateNewDrawable(__DRIscreen *screen,
const __GLcontextModes *modes,
- __DRIid draw,
__DRIdrawable *pdraw,
+ drm_drawable_t hwDrawable,
int renderType,
const int *attrs)
{
@@ -456,14 +457,7 @@ static void *driCreateNewDrawable(__DRIscreen *screen,
return NULL;
}
- /* Ensure that modes->screen and screen are the same screen? */
-
- if (!(*dri_interface->createDrawable)(screen, draw, &pdp->hHWDrawable)) {
- _mesa_free(pdp);
- return NULL;
- }
-
- pdp->draw = draw;
+ pdp->hHWDrawable = hwDrawable;
pdp->pdraw = pdraw;
pdp->refcount = 0;
pdp->pStamp = NULL;
@@ -484,7 +478,6 @@ static void *driCreateNewDrawable(__DRIscreen *screen,
if (!(*psp->DriverAPI.CreateBuffer)(psp, pdp, modes,
renderType == GLX_PIXMAP_BIT)) {
- (void)(*dri_interface->destroyDrawable)(screen, pdp->draw);
_mesa_free(pdp);
return NULL;
}
@@ -523,7 +516,6 @@ driDestroyDrawable(void *drawablePrivate)
if (pdp) {
psp = pdp->driScreenPriv;
(*psp->DriverAPI.DestroyBuffer)(pdp);
- (void)(*dri_interface->destroyDrawable)(psp->psc, pdp->draw);
if (pdp->pClipRects) {
_mesa_free(pdp->pClipRects);
pdp->pClipRects = NULL;