st/drm: Seperate get handle for global buffer ids
[mesa.git] / src / gallium / include / state_tracker / drm_api.h
1
2 #ifndef _DRM_API_H_
3 #define _DRM_API_H_
4
5 struct pipe_screen;
6 struct pipe_winsys;
7 struct pipe_buffer;
8 struct pipe_context;
9 struct pipe_texture;
10
11 struct drm_api
12 {
13 /**
14 * Special buffer functions
15 */
16 /*@{*/
17 struct pipe_screen* (*create_screen)(int drmFB, int pciID);
18 struct pipe_context* (*create_context)(struct pipe_screen *screen);
19 /*@}*/
20
21 /**
22 * Special buffer functions
23 */
24 /*@{*/
25 boolean (*buffer_from_texture)(struct pipe_texture *texture,
26 struct pipe_buffer **buffer,
27 unsigned *stride);
28 struct pipe_buffer* (*buffer_from_handle)(struct pipe_screen *screen,
29 const char *name,
30 unsigned handle);
31 boolean (*handle_from_buffer)(struct pipe_screen *screen,
32 struct pipe_buffer *buffer,
33 unsigned *handle);
34 boolean (*global_handle_from_buffer)(struct pipe_screen *screen,
35 struct pipe_buffer *buffer,
36 unsigned *handle);
37 /*@}*/
38 };
39
40 /**
41 * A driver needs to export this symbol
42 */
43 extern struct drm_api drm_api_hocks;
44
45 #endif