5 #include "pipe/p_compiler.h"
11 struct pipe_video_context
;
14 enum drm_create_screen_mode
{
15 DRM_CREATE_NORMAL
= 0,
17 DRM_CREATE_DRIVER
= 1024,
22 * Modes other than DRM_CREATE_NORMAL derive from this struct.
25 struct drm_create_screen_arg
{
26 enum drm_create_screen_mode mode
;
33 * Special buffer functions
36 struct pipe_screen
* (*create_screen
)(struct drm_api
*api
, int drm_fd
,
37 struct drm_create_screen_arg
*arg
);
38 struct pipe_context
* (*create_context
)(struct drm_api
*api
,
39 struct pipe_screen
*screen
);
40 struct pipe_video_context
* (*create_video_context
)(struct drm_api
*api
,
41 struct pipe_screen
*screen
,
42 enum pipe_video_profile profile
,
43 enum pipe_video_chroma_format chroma_format
,
44 unsigned width
, unsigned height
);
48 * Special buffer functions
52 (*texture_from_shared_handle
)(struct drm_api
*api
,
53 struct pipe_screen
*screen
,
54 struct pipe_texture
*templ
,
58 boolean (*shared_handle_from_texture
)(struct drm_api
*api
,
59 struct pipe_screen
*screen
,
60 struct pipe_texture
*texture
,
63 boolean (*local_handle_from_texture
)(struct drm_api
*api
,
64 struct pipe_screen
*screen
,
65 struct pipe_texture
*texture
,
70 void (*destroy
)(struct drm_api
*api
);
73 extern struct drm_api
* drm_api_create(void);