Lines Matching refs:pdraw

134    struct dri2_drawable *pdraw, *pread;
139 pdraw = (struct dri2_drawable *) driFetchDrawable(context, draw);
144 if (pdraw)
145 dri_draw = pdraw->driDrawable;
161 if (!pdp->invalidateAvailable && pdraw) {
162 dri2InvalidateBuffers(psc->base.dpy, pdraw->base.xDrawable);
163 if (pread != pdraw && pread)
290 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
294 __glxHashDelete(pdp->dri2Hash, pdraw->base.xDrawable);
295 (*psc->core->destroyDrawable) (pdraw->driDrawable);
304 if (pdraw->base.xDrawable != pdraw->base.drawable)
305 DRI2DestroyDrawable(psc->base.dpy, pdraw->base.xDrawable);
307 free(pdraw);
314 struct dri2_drawable *pdraw;
325 pdraw = calloc(1, sizeof(*pdraw));
326 if (!pdraw)
329 pdraw->base.destroyDrawable = dri2DestroyDrawable;
330 pdraw->base.xDrawable = xDrawable;
331 pdraw->base.drawable = drawable;
332 pdraw->base.psc = &psc->base;
333 pdraw->bufferCount = 0;
334 pdraw->swap_interval = 1; /* default may be overridden below */
335 pdraw->have_back = 0;
344 pdraw->swap_interval = 0;
349 pdraw->swap_interval = 1;
356 pdraw->driDrawable =
358 config->driConfig, pdraw);
360 if (!pdraw->driDrawable) {
362 free(pdraw);
366 if (__glxHashInsert(pdp->dri2Hash, xDrawable, pdraw)) {
367 (*psc->core->destroyDrawable) (pdraw->driDrawable);
369 free(pdraw);
378 psc->vtable.setSwapInterval(&pdraw->base, pdraw->swap_interval);
380 return &pdraw->base;
384 dri2DrawableGetMSC(struct glx_screen *psc, __GLXDRIdrawable *pdraw,
387 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
391 get_msc_cookie = xcb_dri2_get_msc_unchecked(c, pdraw->xDrawable);
406 dri2WaitForMSC(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
409 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
420 wait_msc_cookie = xcb_dri2_wait_msc_unchecked(c, pdraw->xDrawable,
438 dri2WaitForSBC(__GLXDRIdrawable *pdraw, int64_t target_sbc, int64_t *ust,
441 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
448 wait_sbc_cookie = xcb_dri2_wait_sbc_unchecked(c, pdraw->xDrawable,
518 __dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y,
522 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
523 struct dri2_screen *psc = (struct dri2_screen *) pdraw->psc;
544 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
551 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
558 dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y,
561 __dri2CopySubBuffer(pdraw, x, y, width, height,
621 struct dri2_drawable *pdraw = loaderPrivate;
624 if (!pdraw)
627 if (!pdraw->base.psc)
630 psc = (struct dri2_screen *) pdraw->base.psc;
640 dri2Throttle(psc, pdraw, __DRI2_THROTTLE_FLUSHFRONT);
644 dri2InvalidateBuffers(priv->dpy, pdraw->base.xDrawable);
670 process_buffers(struct dri2_drawable * pdraw, DRI2Buffer * buffers,
675 pdraw->bufferCount = count;
676 pdraw->have_fake_front = 0;
677 pdraw->have_back = 0;
682 pdraw->buffers[i].attachment = buffers[i].attachment;
683 pdraw->buffers[i].name = buffers[i].name;
684 pdraw->buffers[i].pitch = buffers[i].pitch;
685 pdraw->buffers[i].cpp = buffers[i].cpp;
686 pdraw->buffers[i].flags = buffers[i].flags;
687 if (pdraw->buffers[i].attachment == __DRI_BUFFER_FAKE_FRONT_LEFT)
688 pdraw->have_fake_front = 1;
689 if (pdraw->buffers[i].attachment == __DRI_BUFFER_BACK_LEFT)
690 pdraw->have_back = 1;
698 __GLXDRIdrawable *pdraw;
699 pdraw = dri2GetGlxDrawableFromXDrawableId(dpy, drawable);
700 if (!pdraw || !(pdraw->eventMask & GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK))
730 __GLXDRIdrawable *pdraw,
748 xcb_dri2_swap_buffers_unchecked(c, pdraw->xDrawable,
775 dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
778 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
791 __dri2CopySubBuffer(pdraw, 0, 0, priv->width, priv->height,
800 ret = dri2XcbSwapBuffers(pdraw->psc->dpy, pdraw,
810 dri2InvalidateBuffers(dpyPriv->dpy, pdraw->xDrawable);
821 struct dri2_drawable *pdraw = loaderPrivate;
824 buffers = DRI2GetBuffers(pdraw->base.psc->dpy, pdraw->base.xDrawable,
829 pdraw->width = *width;
830 pdraw->height = *height;
831 process_buffers(pdraw, buffers, *out_count);
835 return pdraw->buffers;
844 struct dri2_drawable *pdraw = loaderPrivate;
847 buffers = DRI2GetBuffersWithFormat(pdraw->base.psc->dpy,
848 pdraw->base.xDrawable,
854 pdraw->width = *width;
855 pdraw->height = *height;
856 process_buffers(pdraw, buffers, *out_count);
860 return pdraw->buffers;
864 dri2SetSwapInterval(__GLXDRIdrawable *pdraw, int interval)
866 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
867 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
895 dri2GetSwapInterval(__GLXDRIdrawable *pdraw)
897 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
951 __GLXDRIdrawable *pdraw =
954 struct dri2_drawable *pdp = (struct dri2_drawable *) pdraw;
956 if (!pdraw)
959 psc = (struct dri2_screen *) pdraw->psc;
972 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
978 if (pdraw != NULL) {
983 psc->f->invalidate(pdraw->driDrawable);
988 pdraw->base.textureTarget,
989 pdraw->base.textureFormat,
990 pdraw->driDrawable);
994 pdraw->base.textureTarget,
995 pdraw->driDrawable);
1005 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
1008 if (pdraw != NULL) {
1014 pdraw->base.textureTarget,
1015 pdraw->driDrawable);
1337 __GLXDRIdrawable *pdraw;
1339 if (__glxHashLookup(pdp->dri2Hash, id, (void *) &pdraw) == 0)
1340 return pdraw;