Lines Matching defs: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)
351 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
355 __glxHashDelete(pdp->dri2Hash, pdraw->base.xDrawable);
356 (*psc->core->destroyDrawable) (pdraw->driDrawable);
365 if (pdraw->base.xDrawable != pdraw->base.drawable)
366 DRI2DestroyDrawable(psc->base.dpy, pdraw->base.xDrawable);
368 free(pdraw);
375 struct dri2_drawable *pdraw;
386 pdraw = calloc(1, sizeof(*pdraw));
387 if (!pdraw)
390 pdraw->base.destroyDrawable = dri2DestroyDrawable;
391 pdraw->base.xDrawable = xDrawable;
392 pdraw->base.drawable = drawable;
393 pdraw->base.psc = &psc->base;
394 pdraw->bufferCount = 0;
395 pdraw->swap_interval = 1; /* default may be overridden below */
396 pdraw->have_back = 0;
405 pdraw->swap_interval = 0;
410 pdraw->swap_interval = 1;
417 pdraw->driDrawable =
419 config->driConfig, pdraw);
421 if (!pdraw->driDrawable) {
423 free(pdraw);
427 if (__glxHashInsert(pdp->dri2Hash, xDrawable, pdraw)) {
428 (*psc->core->destroyDrawable) (pdraw->driDrawable);
430 free(pdraw);
439 psc->vtable.setSwapInterval(&pdraw->base, pdraw->swap_interval);
441 return &pdraw->base;
445 dri2DrawableGetMSC(struct glx_screen *psc, __GLXDRIdrawable *pdraw,
448 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
452 get_msc_cookie = xcb_dri2_get_msc_unchecked(c, pdraw->xDrawable);
467 dri2WaitForMSC(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
470 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
481 wait_msc_cookie = xcb_dri2_wait_msc_unchecked(c, pdraw->xDrawable,
499 dri2WaitForSBC(__GLXDRIdrawable *pdraw, int64_t target_sbc, int64_t *ust,
502 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
509 wait_sbc_cookie = xcb_dri2_wait_sbc_unchecked(c, pdraw->xDrawable,
579 __dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y,
583 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
584 struct dri2_screen *psc = (struct dri2_screen *) pdraw->psc;
605 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
612 DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region,
619 dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y,
622 __dri2CopySubBuffer(pdraw, x, y, width, height,
682 struct dri2_drawable *pdraw = loaderPrivate;
685 if (!pdraw)
688 if (!pdraw->base.psc)
691 psc = (struct dri2_screen *) pdraw->base.psc;
701 dri2Throttle(psc, pdraw, __DRI2_THROTTLE_FLUSHFRONT);
705 dri2InvalidateBuffers(priv->dpy, pdraw->base.xDrawable);
730 process_buffers(struct dri2_drawable * pdraw, DRI2Buffer * buffers,
735 pdraw->bufferCount = count;
736 pdraw->have_fake_front = 0;
737 pdraw->have_back = 0;
742 pdraw->buffers[i].attachment = buffers[i].attachment;
743 pdraw->buffers[i].name = buffers[i].name;
744 pdraw->buffers[i].pitch = buffers[i].pitch;
745 pdraw->buffers[i].cpp = buffers[i].cpp;
746 pdraw->buffers[i].flags = buffers[i].flags;
747 if (pdraw->buffers[i].attachment == __DRI_BUFFER_FAKE_FRONT_LEFT)
748 pdraw->have_fake_front = 1;
749 if (pdraw->buffers[i].attachment == __DRI_BUFFER_BACK_LEFT)
750 pdraw->have_back = 1;
758 __GLXDRIdrawable *pdraw;
759 pdraw = dri2GetGlxDrawableFromXDrawableId(dpy, drawable);
760 if (!pdraw || !(pdraw->eventMask & GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK))
790 __GLXDRIdrawable *pdraw,
808 xcb_dri2_swap_buffers_unchecked(c, pdraw->xDrawable,
835 dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
838 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
851 __dri2CopySubBuffer(pdraw, 0, 0, priv->width, priv->height,
860 ret = dri2XcbSwapBuffers(pdraw->psc->dpy, pdraw,
870 dri2InvalidateBuffers(dpyPriv->dpy, pdraw->xDrawable);
881 struct dri2_drawable *pdraw = loaderPrivate;
884 buffers = DRI2GetBuffers(pdraw->base.psc->dpy, pdraw->base.xDrawable,
889 pdraw->width = *width;
890 pdraw->height = *height;
891 process_buffers(pdraw, buffers, *out_count);
895 return pdraw->buffers;
904 struct dri2_drawable *pdraw = loaderPrivate;
907 buffers = DRI2GetBuffersWithFormat(pdraw->base.psc->dpy,
908 pdraw->base.xDrawable,
914 pdraw->width = *width;
915 pdraw->height = *height;
916 process_buffers(pdraw, buffers, *out_count);
920 return pdraw->buffers;
924 dri2SetSwapInterval(__GLXDRIdrawable *pdraw, int interval)
926 xcb_connection_t *c = XGetXCBConnection(pdraw->psc->dpy);
927 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
955 dri2GetSwapInterval(__GLXDRIdrawable *pdraw)
957 struct dri2_drawable *priv = (struct dri2_drawable *) pdraw;
1011 __GLXDRIdrawable *pdraw =
1014 struct dri2_drawable *pdp = (struct dri2_drawable *) pdraw;
1016 if (!pdraw)
1019 psc = (struct dri2_screen *) pdraw->psc;
1021 if (pdraw && psc->f && psc->f->base.version >= 3 && psc->f->invalidate)
1034 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
1043 if (pdraw != NULL) {
1048 psc->f->invalidate(pdraw->driDrawable);
1053 pdraw->base.textureTarget,
1054 pdraw->base.textureFormat,
1055 pdraw->driDrawable);
1059 pdraw->base.textureTarget,
1060 pdraw->driDrawable);
1072 struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
1075 if (dpyPriv != NULL && pdraw != NULL) {
1081 pdraw->base.textureTarget,
1082 pdraw->driDrawable);
1409 __GLXDRIdrawable *pdraw;
1411 if (__glxHashLookup(pdp->dri2Hash, id, (void *) &pdraw) == 0)
1412 return pdraw;