Lines Matching refs:pdp

60 XCreateDrawable(struct drisw_drawable * pdp, int shmid, Display * dpy)
62 if (pdp->ximage) {
63 XDestroyImage(pdp->ximage);
64 pdp->ximage = NULL;
65 if ((pdp->shminfo.shmid > 0) && (shmid != pdp->shminfo.shmid))
66 XShmDetach(dpy, &pdp->shminfo);
70 pdp->shminfo.shmid = shmid;
71 pdp->ximage = XShmCreateImage(dpy,
73 pdp->xDepth,
76 &pdp->shminfo, /* shminfo */
78 if (pdp->ximage != NULL) {
86 XShmAttach(dpy, &pdp->shminfo);
91 XDestroyImage(pdp->ximage);
92 pdp->ximage = NULL;
99 if (pdp->ximage == NULL) {
100 pdp->shminfo.shmid = -1;
101 pdp->ximage = XCreateImage(dpy,
103 pdp->xDepth,
115 if (pdp->ximage->bits_per_pixel == 24)
116 pdp->ximage->bits_per_pixel = 32;
122 XDestroyDrawable(struct drisw_drawable * pdp, Display * dpy, XID drawable)
124 if (pdp->ximage)
125 XDestroyImage(pdp->ximage);
127 if (pdp->shminfo.shmid > 0)
128 XShmDetach(dpy, &pdp->shminfo);
130 XFreeGC(dpy, pdp->gc);
142 struct drisw_drawable *pdp = loaderPrivate;
143 __GLXDRIdrawable *pdraw = &(pdp->base);
185 struct drisw_drawable *pdp = loaderPrivate;
186 __GLXDRIdrawable *pdraw = &(pdp->base);
190 GC gc = pdp->gc;
192 if (!pdp->ximage || shmid != pdp->shminfo.shmid) {
193 if (!XCreateDrawable(pdp, shmid, dpy))
198 ximage = pdp->ximage;
205 if (pdp->shminfo.shmid >= 0) {
220 struct drisw_drawable *pdp = loaderPrivate;
222 if (!pdp)
225 pdp->shminfo.shmaddr = shmaddr;
237 struct drisw_drawable *pdp = loaderPrivate;
239 if (!pdp)
242 pdp->shminfo.shmaddr = shmaddr;
534 struct drisw_drawable *pdp = (struct drisw_drawable *) pdraw;
536 if (pdp) {
540 return psc->kopper->queryBufferAge(pdp->driDrawable);
662 struct drisw_drawable *pdp = (struct drisw_drawable *) pdraw;
663 struct drisw_screen *psc = (struct drisw_screen *) pdp->base.psc;
665 (*psc->core->destroyDrawable) (pdp->driDrawable);
667 XDestroyDrawable(pdp, pdraw->psc->dpy, pdraw->drawable);
668 free(pdp);
676 struct drisw_drawable *pdp;
683 pdp = calloc(1, sizeof(*pdp));
684 if (!pdp)
687 pdp->base.xDrawable = xDrawable;
688 pdp->base.drawable = drawable;
689 pdp->base.psc = &psc->base;
690 pdp->config = modes;
691 pdp->gc = XCreateGC(dpy, xDrawable, 0, NULL);
692 pdp->xDepth = 0;
695 if (pdp->config->visualID != 0) {
699 template.visualid = pdp->config->visualID;
700 template.screen = pdp->config->screen;
705 pdp->xDepth = visinfo->depth;
711 if (pdp->xDepth == 0) {
717 pdp->xDepth = depth;
722 pdp->driDrawable =
723 (*kopper->createNewDrawable) (psc->driScreen, config->driConfig, pdp, !(type & GLX_WINDOW_BIT));
725 pdp->swapInterval = dri_get_initial_swap_interval(psc->driScreen, psc->config);
726 psc->kopper->setSwapInterval(pdp->driDrawable, pdp->swapInterval);
729 pdp->driDrawable =
730 (*swrast->createNewDrawable) (psc->driScreen, config->driConfig, pdp);
732 if (!pdp->driDrawable) {
733 XDestroyDrawable(pdp, psc->base.dpy, xDrawable);
734 free(pdp);
738 pdp->base.destroyDrawable = driswDestroyDrawable;
740 return &pdp->base;
748 struct drisw_drawable *pdp = (struct drisw_drawable *) pdraw;
749 struct drisw_screen *psc = (struct drisw_screen *) pdp->base.psc;
760 return psc->kopper->swapBuffers (pdp->driDrawable);
762 (*psc->core->swapBuffers) (pdp->driDrawable);
771 struct drisw_drawable *pdp = (struct drisw_drawable *) pdraw;
772 struct drisw_screen *psc = (struct drisw_screen *) pdp->base.psc;
778 (*psc->copySubBuffer->copySubBuffer) (pdp->driDrawable,
915 struct drisw_drawable *pdp = (struct drisw_drawable *) pdraw;
916 struct drisw_screen *psc = (struct drisw_screen *) pdp->base.psc;
921 psc->kopper->setSwapInterval(pdp->driDrawable, interval);
922 pdp->swapInterval = interval;
930 struct drisw_drawable *pdp = (struct drisw_drawable *) pdraw;
932 return pdp->swapInterval;