Lines Matching defs:pdraw
120 struct dri2_drawable *pdraw, *pread;
123 pdraw = (struct dri2_drawable *) driFetchDrawable(context, draw);
128 if (pdraw)
129 dri_draw = pdraw->driDrawable;
270 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
274 __glxHashDelete(pdp->dri2Hash, pdraw->base.xDrawable);
275 (*psc->core->destroyDrawable) (pdraw->driDrawable);
284 if (pdraw->base.xDrawable != pdraw->base.drawable)
285 DRI2DestroyDrawable(psc->base.dpy, pdraw->base.xDrawable);
287 free(pdraw);
295 struct dri2_drawable *pdraw;
305 pdraw = calloc(1, sizeof(*pdraw));
306 if (!pdraw)
309 pdraw->base.destroyDrawable = dri2DestroyDrawable;
310 pdraw->base.xDrawable = xDrawable;
311 pdraw->base.drawable = drawable;
312 pdraw->base.psc = &psc->base;
313 pdraw->bufferCount = 0;
314 pdraw->swap_interval = dri_get_initial_swap_interval(psc->driScreen, psc->config);
315 pdraw->have_back = 0;
320 pdraw->driDrawable =
322 config->driConfig, pdraw);
324 if (!pdraw->driDrawable) {
326 free(pdraw);
330 if (__glxHashInsert(pdp->dri2Hash, xDrawable, pdraw)) {
331 (*psc->core->destroyDrawable) (pdraw->driDrawable);
333 free(pdraw);
342 psc->vtable.setSwapInterval(&pdraw->base, pdraw->swap_interval);
344 return &pdraw->base;
348 dri2DrawableGetMSC(struct glx_screen *psc, __GLXDRIdrawable *pdraw,
351 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
355 get_msc_cookie = xcb_dri2_get_msc_unchecked(c, pdraw->xDrawable);
370 dri2WaitForMSC(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
373 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
384 wait_msc_cookie = xcb_dri2_wait_msc_unchecked(c, pdraw->xDrawable,
402 dri2WaitForSBC(__GLXDRIdrawable *pdraw, int64_t target_sbc, int64_t *ust,
405 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
412 wait_sbc_cookie = xcb_dri2_wait_sbc_unchecked(c, pdraw->xDrawable,
482 __dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y,
486 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
487 struct dri2_screen *psc = (struct dri2_screen *) pdraw->psc;
508 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
515 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
522 dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y,
525 __dri2CopySubBuffer(pdraw, x, y, width, height,
584 struct dri2_drawable *pdraw = loaderPrivate;
587 if (!pdraw)
590 if (!pdraw->base.psc)
593 psc = (struct dri2_screen *) pdraw->base.psc;
602 dri2Throttle(psc, pdraw, __DRI2_THROTTLE_FLUSHFRONT);
628 process_buffers(struct dri2_drawable * pdraw, DRI2Buffer * buffers,
633 pdraw->bufferCount = count;
634 pdraw->have_fake_front = 0;
635 pdraw->have_back = 0;
640 pdraw->buffers[i].attachment = buffers[i].attachment;
641 pdraw->buffers[i].name = buffers[i].name;
642 pdraw->buffers[i].pitch = buffers[i].pitch;
643 pdraw->buffers[i].cpp = buffers[i].cpp;
644 pdraw->buffers[i].flags = buffers[i].flags;
645 if (pdraw->buffers[i].attachment == __DRI_BUFFER_FAKE_FRONT_LEFT)
646 pdraw->have_fake_front = 1;
647 if (pdraw->buffers[i].attachment == __DRI_BUFFER_BACK_LEFT)
648 pdraw->have_back = 1;
656 __GLXDRIdrawable *pdraw;
657 pdraw = dri2GetGlxDrawableFromXDrawableId(dpy, drawable);
658 if (!pdraw || !(pdraw->eventMask & GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK))
688 __GLXDRIdrawable *pdraw,
706 xcb_dri2_swap_buffers_unchecked(c, pdraw->xDrawable,
733 dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
736 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
750 ret = dri2XcbSwapBuffers(pdraw->psc->dpy, pdraw,
766 struct dri2_drawable *pdraw = loaderPrivate;
769 buffers = DRI2GetBuffers(pdraw->base.psc->dpy, pdraw->base.xDrawable,
774 pdraw->width = *width;
775 pdraw->height = *height;
776 process_buffers(pdraw, buffers, *out_count);
780 return pdraw->buffers;
789 struct dri2_drawable *pdraw = loaderPrivate;
792 buffers = DRI2GetBuffersWithFormat(pdraw->base.psc->dpy,
793 pdraw->base.xDrawable,
799 pdraw->width = *width;
800 pdraw->height = *height;
801 process_buffers(pdraw, buffers, *out_count);
805 return pdraw->buffers;
809 dri2SetSwapInterval(__GLXDRIdrawable *pdraw, int interval)
811 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
812 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
825 dri2GetSwapInterval(__GLXDRIdrawable *pdraw)
827 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
873 __GLXDRIdrawable *pdraw =
876 struct dri2_drawable *pdp = (struct dri2_drawable *) pdraw;
878 if (!pdraw)
881 psc = (struct dri2_screen *) pdraw->psc;
893 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
896 if (pdraw != NULL) {
902 pdraw->base.textureTarget,
903 pdraw->base.textureFormat,
904 pdraw->driDrawable);
908 pdraw->base.textureTarget,
909 pdraw->driDrawable);
919 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
922 if (pdraw != NULL) {
928 pdraw->base.textureTarget,
929 pdraw->driDrawable);
1262 __GLXDRIdrawable *pdraw;
1264 if (__glxHashLookup(pdp->dri2Hash, id, (void *) &pdraw) == 0)
1265 return pdraw;