Home | History | Annotate | Download | only in dri2

Lines Matching refs:dri2_surf

44                      struct dri2_egl_surface * dri2_surf,
52 dri2_surf->gc = xcb_generate_id(dri2_dpy->conn);
54 xcb_create_gc(dri2_dpy->conn, dri2_surf->gc, dri2_surf->drawable, mask, &function);
56 dri2_surf->swapgc = xcb_generate_id(dri2_dpy->conn);
60 xcb_create_gc(dri2_dpy->conn, dri2_surf->swapgc, dri2_surf->drawable, mask, valgc);
61 dri2_surf->depth = depth;
65 dri2_surf->bytes_per_pixel = 4;
68 dri2_surf->bytes_per_pixel = 2;
71 dri2_surf->bytes_per_pixel = 1;
74 dri2_surf->bytes_per_pixel = 0;
83 struct dri2_egl_surface * dri2_surf)
85 xcb_free_gc(dri2_dpy->conn, dri2_surf->gc);
86 xcb_free_gc(dri2_dpy->conn, dri2_surf->swapgc);
94 struct dri2_egl_surface *dri2_surf = loaderPrivate;
95 struct dri2_egl_display *dri2_dpy = dri2_egl_display(dri2_surf->base.Resource.Display);
102 cookie = xcb_get_geometry (dri2_dpy->conn, dri2_surf->drawable);
122 struct dri2_egl_surface *dri2_surf = loaderPrivate;
123 struct dri2_egl_display *dri2_dpy = dri2_egl_display(dri2_surf->base.Resource.Display);
129 gc = dri2_surf->gc;
132 gc = dri2_surf->swapgc;
138 xcb_put_image(dri2_dpy->conn, XCB_IMAGE_FORMAT_Z_PIXMAP, dri2_surf->drawable,
139 gc, w, h, x, y, 0, dri2_surf->depth,
140 w*h*dri2_surf->bytes_per_pixel, (const uint8_t *)data);
148 struct dri2_egl_surface *dri2_surf = loaderPrivate;
149 struct dri2_egl_display *dri2_dpy = dri2_egl_display(dri2_surf->base.Resource.Display);
156 dri2_surf->drawable, x, y, w, h, ~0);
183 struct dri2_egl_surface *dri2_surf;
191 dri2_surf = malloc(sizeof *dri2_surf);
192 if (!dri2_surf) {
197 if (!_eglInitSurface(&dri2_surf->base, disp, type, conf, attrib_list))
200 dri2_surf->region = XCB_NONE;
202 dri2_surf->drawable = xcb_generate_id(dri2_dpy->conn);
205 dri2_surf->drawable, s.data->root,
206 dri2_surf->base.Width, dri2_surf->base.Height);
208 dri2_surf->drawable = window;
212 dri2_surf->dri_drawable =
217 dri2_surf);
220 dri2_surf->dri_drawable =
223 dri2_surf);
226 if (dri2_surf->dri_drawable == NULL) {
232 xcb_dri2_create_drawable (dri2_dpy->conn, dri2_surf->drawable);
234 swrastCreateDrawable(dri2_dpy, dri2_surf, _eglGetConfigKey(conf, EGL_BUFFER_SIZE));
238 cookie = xcb_get_geometry (dri2_dpy->conn, dri2_surf->drawable);
246 dri2_surf->base.Width = reply->width;
247 dri2_surf->base.Height = reply->height;
252 dri2_surf->base.PostSubBufferSupportedNV = EGL_TRUE;
254 return &dri2_surf->base;
257 dri2_dpy->core->destroyDrawable(dri2_surf->dri_drawable);
260 xcb_free_pixmap(dri2_dpy->conn, dri2_surf->drawable);
262 free(dri2_surf);
300 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
307 (*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
310 xcb_dri2_destroy_drawable (dri2_dpy->conn, dri2_surf->drawable);
313 swrastDestroyDrawable(dri2_dpy, dri2_surf);
317 xcb_free_pixmap (dri2_dpy->conn, dri2_surf->drawable);
331 dri2_process_buffers(struct dri2_egl_surface *dri2_surf,
335 dri2_egl_display(dri2_surf->base.Resource.Display);
339 dri2_surf->buffer_count = count;
340 dri2_surf->have_fake_front = 0;
345 dri2_surf->buffers[i].attachment = buffers[i].attachment;
346 dri2_surf->buffers[i].name = buffers[i].name;
347 dri2_surf->buffers[i].pitch = buffers[i].pitch;
348 dri2_surf->buffers[i].cpp = buffers[i].cpp;
349 dri2_surf->buffers[i].flags = buffers[i].flags;
356 if (dri2_surf->buffers[i].attachment == __DRI_BUFFER_FAKE_FRONT_LEFT)
357 dri2_surf->have_fake_front = 1;
360 if (dri2_surf->region != XCB_NONE)
361 xcb_xfixes_destroy_region(dri2_dpy->conn, dri2_surf->region);
365 rectangle.width = dri2_surf->base.Width;
366 rectangle.height = dri2_surf->base.Height;
367 dri2_surf->region = xcb_generate_id(dri2_dpy->conn);
368 xcb_xfixes_create_region(dri2_dpy->conn, dri2_surf->region, 1, &rectangle);
377 struct dri2_egl_surface *dri2_surf = loaderPrivate;
379 dri2_egl_display(dri2_surf->base.Resource.Display);
387 dri2_surf->drawable,
395 dri2_surf->base.Width = *width = reply->width;
396 dri2_surf->base.Height = *height = reply->height;
397 dri2_process_buffers(dri2_surf, buffers, *out_count);
401 return dri2_surf->buffers;
410 struct dri2_egl_surface *dri2_surf = loaderPrivate;
412 dri2_egl_display(dri2_surf->base.Resource.Display);
422 dri2_surf->drawable,
432 dri2_surf->base.Width = *width = reply->width;
433 dri2_surf->base.Height = *height = reply->height;
435 dri2_process_buffers(dri2_surf, buffers, *out_count);
439 return dri2_surf->buffers;
450 struct dri2_egl_surface *dri2_surf = loaderPrivate;
452 dri2WaitGL(dri2_surf);
668 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
678 (*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
681 if (dri2_surf->have_fake_front)
687 dri2_surf->drawable,
702 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
718 return dri2_copy_region(drv, disp, draw, dri2_surf->region) ? 0 : -1;
722 (*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
725 cookie = xcb_dri2_swap_buffers_unchecked(dri2_dpy->conn, dri2_surf->drawable,
739 (*dri2_dpy->flush->invalidate)(dri2_surf->dri_drawable);
744 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
746 return dri2_copy_region(drv, disp, draw, dri2_surf->region) ? 0 : -1;
755 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
762 dri2_dpy->core->swapBuffers(dri2_surf->dri_drawable);
772 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
779 return dri2_copy_region(drv, disp, draw, dri2_surf->region);
783 rectangles[i].y = dri2_surf->base.Height - rects[i * 4 + 1] - rects[i * 4 + 3];
813 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
825 xcb_dri2_swap_interval(dri2_dpy->conn, dri2_surf->drawable, interval);
838 struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
843 (*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
848 dri2_surf->drawable,
853 dri2_surf->base.Width,
854 dri2_surf->base.Height);