gbm: Export a get modifiers
[mesa.git] / src / gbm / main / gbmint.h
index 155eb12b06bc58818a6a67c939e13a8cdcfd78bf..5ad85cc80fff21521907544fb6ec51cf1e964c1b 100644 (file)
@@ -65,16 +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);
+                               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);
@@ -104,6 +119,10 @@ struct gbm_surface {
    uint32_t height;
    uint32_t format;
    uint32_t flags;
+   struct {
+      uint64_t *modifiers;
+      unsigned count;
+   };
 };
 
 struct gbm_backend {
@@ -111,7 +130,4 @@ struct gbm_backend {
    struct gbm_device *(*create_device)(int fd);
 };
 
-struct gbm_device *
-_gbm_mesa_get_device(int fd);
-
 #endif