1#ifndef QXL_SURFACE_H 2#define QXL_SURFACE_H 3 4struct evacuated_surface_t; 5 6struct qxl_surface_t 7{ 8 surface_cache_t *cache; 9 10 qxl_screen_t *qxl; 11 uint32_t id; 12 13 pixman_image_t * dev_image; 14 pixman_image_t * host_image; 15 16 uxa_access_t access_type; 17 RegionRec access_region; 18 19 struct qxl_bo *bo; 20 struct qxl_surface_t * next; 21 struct qxl_surface_t * prev; /* Only used in the 'live' 22 * chain in the surface cache 23 */ 24 25 int in_use; 26 int bpp; /* bpp of the pixmap */ 27 int ref_count; 28 29 PixmapPtr pixmap; 30 31 struct evacuated_surface_t *evacuated; 32 33 union 34 { 35 struct qxl_surface_t *copy_src; 36 Pixel solid_pixel; 37 38 struct 39 { 40 int op; 41 PicturePtr src_picture; 42 PicturePtr mask_picture; 43 PicturePtr dest_picture; 44 struct qxl_surface_t *src; 45 struct qxl_surface_t *mask; 46 struct qxl_surface_t *dest; 47 } composite; 48 } u; 49 struct qxl_bo *image_bo; 50}; 51 52void qxl_download_box (qxl_surface_t *surface, int x1, int y1, int x2, int y2); 53void qxl_upload_box (qxl_surface_t *surface, int x1, int y1, int x2, int y2); 54 55#endif 56