• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 #ifndef _WINSYS_HANDLE_H_
3 #define _WINSYS_HANDLE_H_
4 
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8 
9 #define WINSYS_HANDLE_TYPE_SHARED 0
10 #define WINSYS_HANDLE_TYPE_KMS    1
11 #define WINSYS_HANDLE_TYPE_FD     2
12 #define WINSYS_HANDLE_TYPE_SHMID   3
13 
14 /**
15  * For use with pipe_screen::{texture_from_handle|texture_get_handle}.
16  */
17 struct winsys_handle
18 {
19    /**
20     * Input for texture_from_handle, valid values are
21     * WINSYS_HANDLE_TYPE_SHARED or WINSYS_HANDLE_TYPE_FD.
22     * Input to texture_get_handle,
23     * to select handle for kms, flink, or prime.
24     */
25    unsigned type;
26    /**
27     * Input for texture_get_handle, allows to export the offset
28     * of a specific layer of an array texture.
29     */
30    unsigned layer;
31    /**
32     * Input for texture_get_handle, allows to export of a specific plane of a
33     * texture.
34     */
35    unsigned plane;
36    /**
37     * Input to texture_from_handle.
38     * Output for texture_get_handle.
39     */
40    unsigned handle;
41    /**
42     * Input to texture_from_handle.
43     * Output for texture_get_handle.
44     */
45    unsigned stride;
46    /**
47     * Input to texture_from_handle.
48     * Output for texture_get_handle.
49     */
50    unsigned offset;
51 
52    /**
53     * Input to resource_from_handle.
54     * Output from resource_get_handle.
55     */
56    uint64_t format;
57 
58    /**
59     * Input to resource_from_handle.
60     * Output from resource_get_handle.
61     */
62    uint64_t modifier;
63 };
64 
65 #ifdef __cplusplus
66 }
67 #endif
68 
69 #endif /* _WINSYS_HANDLE_H_ */
70