X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgbm%2Fmain%2Fgbmint.h;h=5ad85cc80fff21521907544fb6ec51cf1e964c1b;hb=2a16de9e4bb7d2f0e67fab42eb3f8a667393d04d;hp=8eb8671aeb2cb1105315e8b5ae67c1a9d606bc5d;hpb=bb4c5d72d7c7cb1d9e7016e2c07c36875f30011a;p=mesa.git diff --git a/src/gbm/main/gbmint.h b/src/gbm/main/gbmint.h index 8eb8671aeb2..5ad85cc80ff 100644 --- a/src/gbm/main/gbmint.h +++ b/src/gbm/main/gbmint.h @@ -32,7 +32,7 @@ #include /* GCC visibility */ -#if defined(__GNUC__) && __GNUC__ >= 4 +#if defined(__GNUC__) #define GBM_EXPORT __attribute__ ((visibility("default"))) #else #define GBM_EXPORT @@ -65,17 +65,31 @@ struct gbm_device { struct gbm_bo *(*bo_create)(struct gbm_device *gbm, uint32_t width, uint32_t height, uint32_t format, - uint32_t usage); - struct gbm_bo *(*bo_create_from_egl_image)(struct gbm_device *gbm, - void *egl_dpy, void *egl_img, - uint32_t width, uint32_t height, - uint32_t usage); + uint32_t usage, + const uint64_t *modifiers, + const unsigned int count); + struct gbm_bo *(*bo_import)(struct gbm_device *gbm, uint32_t type, + void *buffer, uint32_t usage); + void *(*bo_map)(struct gbm_bo *bo, + uint32_t x, uint32_t y, + uint32_t width, uint32_t height, + uint32_t flags, uint32_t *stride, + void **map_data); + void (*bo_unmap)(struct gbm_bo *bo, void *map_data); int (*bo_write)(struct gbm_bo *bo, const void *buf, size_t data); + int (*bo_get_fd)(struct gbm_bo *bo); + int (*bo_get_planes)(struct gbm_bo *bo); + union gbm_bo_handle (*bo_get_handle)(struct gbm_bo *bo, int plane); + uint32_t (*bo_get_stride)(struct gbm_bo *bo, int plane); + int64_t (*bo_get_offset)(struct gbm_bo *bo, int plane); + uint64_t (*bo_get_modifier)(struct gbm_bo *bo); void (*bo_destroy)(struct gbm_bo *bo); struct gbm_surface *(*surface_create)(struct gbm_device *gbm, uint32_t width, uint32_t height, - uint32_t format, uint32_t flags); + uint32_t format, uint32_t flags, + const uint64_t *modifiers, + const unsigned count); struct gbm_bo *(*surface_lock_front_buffer)(struct gbm_surface *surface); void (*surface_release_buffer)(struct gbm_surface *surface, struct gbm_bo *bo); @@ -92,7 +106,7 @@ struct gbm_bo { struct gbm_device *gbm; uint32_t width; uint32_t height; - uint32_t pitch; + uint32_t stride; uint32_t format; union gbm_bo_handle handle; void *user_data; @@ -105,6 +119,10 @@ struct gbm_surface { uint32_t height; uint32_t format; uint32_t flags; + struct { + uint64_t *modifiers; + unsigned count; + }; }; struct gbm_backend { @@ -112,7 +130,4 @@ struct gbm_backend { struct gbm_device *(*create_device)(int fd); }; -GBM_EXPORT struct gbm_device * -_gbm_mesa_get_device(int fd); - #endif