pdraw = (struct dri2_drawable *) driFetchDrawable(context, draw);
pread = (struct dri2_drawable *) driFetchDrawable(context, read);
+ driReleaseDrawables(&pcp->base);
+
if (pdraw == NULL || pread == NULL)
return GLXBadDrawable;
struct dri2_screen *psc = (struct dri2_screen *) pcp->base.psc;
(*psc->core->unbindContext) (pcp->driContext);
-
- if (context == new)
- driReleaseDrawables(&pcp->base);
}
static struct glx_context *
static void
dri2FlushFrontBuffer(__DRIdrawable *driDrawable, void *loaderPrivate)
{
+ struct glx_display *priv;
+ struct dri2_display *pdp;
+ struct glx_context *gc;
struct dri2_drawable *pdraw = loaderPrivate;
- struct glx_display *priv = __glXInitialize(pdraw->base.psc->dpy);
- struct dri2_display *pdp = (struct dri2_display *)priv->dri2Display;
- struct glx_context *gc = __glXGetCurrentContext();
+
+ if (!pdraw)
+ return;
+
+ if (!pdraw->base.psc)
+ return;
+
+ priv = __glXInitialize(pdraw->base.psc->dpy);
+ pdp = (struct dri2_display *) priv->dri2Display;
+ gc = __glXGetCurrentContext();
/* Old servers don't send invalidate events */
if (!pdp->invalidateAvailable)
DRI_glXUseXFont,
dri2_bind_tex_image,
dri2_release_tex_image,
+ NULL, /* get_proc_address */
};
static void