diff options
Diffstat (limited to 'src/gallium/include/state_tracker')
-rw-r--r-- | src/gallium/include/state_tracker/drm_api.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/gallium/include/state_tracker/drm_api.h b/src/gallium/include/state_tracker/drm_api.h new file mode 100644 index 0000000000..91a727be66 --- /dev/null +++ b/src/gallium/include/state_tracker/drm_api.h @@ -0,0 +1,47 @@ + +#ifndef _DRM_API_H_ +#define _DRM_API_H_ + +#include "pipe/p_compiler.h" + +struct pipe_screen; +struct pipe_winsys; +struct pipe_buffer; +struct pipe_context; +struct pipe_texture; + +struct drm_api +{ + /** + * Special buffer functions + */ + /*@{*/ + struct pipe_screen* (*create_screen)(int drmFB, int pciID); + struct pipe_context* (*create_context)(struct pipe_screen *screen); + /*@}*/ + + /** + * Special buffer functions + */ + /*@{*/ + boolean (*buffer_from_texture)(struct pipe_texture *texture, + struct pipe_buffer **buffer, + unsigned *stride); + struct pipe_buffer* (*buffer_from_handle)(struct pipe_screen *screen, + const char *name, + unsigned handle); + boolean (*handle_from_buffer)(struct pipe_screen *screen, + struct pipe_buffer *buffer, + unsigned *handle); + boolean (*global_handle_from_buffer)(struct pipe_screen *screen, + struct pipe_buffer *buffer, + unsigned *handle); + /*@}*/ +}; + +/** + * A driver needs to export this symbol + */ +extern struct drm_api drm_api_hocks; + +#endif |