summaryrefslogtreecommitdiff
path: root/dri3/dri3_priv.h
diff options
context:
space:
mode:
Diffstat (limited to 'dri3/dri3_priv.h')
-rw-r--r--dri3/dri3_priv.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/dri3/dri3_priv.h b/dri3/dri3_priv.h
index e61ef226c..8447680ba 100644
--- a/dri3/dri3_priv.h
+++ b/dri3/dri3_priv.h
@@ -34,11 +34,21 @@
extern DevPrivateKeyRec dri3_screen_private_key;
+typedef struct dri3_dmabuf_format {
+ uint32_t format;
+ uint32_t num_modifiers;
+ uint64_t *modifiers;
+} dri3_dmabuf_format_rec, *dri3_dmabuf_format_ptr;
+
typedef struct dri3_screen_priv {
CloseScreenProcPtr CloseScreen;
ConfigNotifyProcPtr ConfigNotify;
DestroyWindowProcPtr DestroyWindow;
+ Bool formats_cached;
+ CARD32 num_formats;
+ dri3_dmabuf_format_ptr formats;
+
dri3_screen_info_ptr info;
} dri3_screen_priv_rec, *dri3_screen_priv_ptr;
@@ -69,10 +79,21 @@ int
dri3_open(ClientPtr client, ScreenPtr screen, RRProviderPtr provider, int *fd);
int
-dri3_pixmap_from_fd(PixmapPtr *ppixmap, ScreenPtr screen, int fd,
- CARD16 width, CARD16 height, CARD16 stride, CARD8 depth, CARD8 bpp);
+dri3_pixmap_from_fds(PixmapPtr *ppixmap, ScreenPtr screen, CARD8 num_fds, int *fds,
+ CARD16 width, CARD16 height, CARD32 *strides, CARD32 *offsets,
+ CARD8 depth, CARD8 bpp, CARD64 modifier);
+
+int
+dri3_fds_from_pixmap(PixmapPtr pixmap, int *fds,
+ CARD32 *strides, CARD32 *offsets,
+ CARD64 *modifier);
int
-dri3_fd_from_pixmap(int *pfd, PixmapPtr pixmap, CARD16 *stride, CARD32 *size);
+dri3_get_supported_modifiers(ScreenPtr screen, DrawablePtr drawable,
+ CARD8 depth, CARD8 bpp,
+ CARD32 *num_drawable_modifiers,
+ CARD64 **drawable_modifiers,
+ CARD32 *num_screen_modifiers,
+ CARD64 **screen_modifiers);
#endif /* _DRI3PRIV_H_ */