#include <sys/stat.h>
/* GCC visibility */
-#if defined(__GNUC__) && __GNUC__ >= 4
+#if defined(__GNUC__)
#define GBM_EXPORT __attribute__ ((visibility("default")))
#else
#define GBM_EXPORT
int (*is_format_supported)(struct gbm_device *gbm,
uint32_t format,
uint32_t usage);
+ int (*get_format_modifier_plane_count)(struct gbm_device *device,
+ uint32_t format,
+ uint64_t modifier);
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);
+ uint32_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);
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;
uint32_t height;
uint32_t format;
uint32_t flags;
+ struct {
+ uint64_t *modifiers;
+ unsigned count;
+ };
};
struct gbm_backend {
struct gbm_device *(*create_device)(int fd);
};
-GBM_EXPORT struct gbm_device *
-_gbm_mesa_get_device(int fd);
+uint32_t
+gbm_format_canonicalize(uint32_t gbm_format);
#endif