1 2#ifndef _WINSYS_HANDLE_H_ 3#define _WINSYS_HANDLE_H_ 4 5#ifdef __cplusplus 6extern "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#define WINSYS_HANDLE_TYPE_D3D12_RES 4 14 15/** 16 * For use with pipe_screen::{texture_from_handle|texture_get_handle}. 17 */ 18struct winsys_handle 19{ 20 /** 21 * Input for texture_from_handle, valid values are 22 * WINSYS_HANDLE_TYPE_SHARED or WINSYS_HANDLE_TYPE_FD. 23 * Input to texture_get_handle, 24 * to select handle for kms, flink, or prime. 25 */ 26 unsigned type; 27 /** 28 * Input for texture_get_handle, allows to export the offset 29 * of a specific layer of an array texture. 30 */ 31 unsigned layer; 32 /** 33 * Input for texture_get_handle, allows to export of a specific plane of a 34 * texture. 35 */ 36 unsigned plane; 37 /** 38 * Input to texture_from_handle. 39 * Output for texture_get_handle. 40 */ 41 unsigned handle; 42 /** 43 * Input to texture_from_handle. 44 * Output for texture_get_handle. 45 */ 46 unsigned stride; 47 /** 48 * Input to texture_from_handle. 49 * Output for texture_get_handle. 50 */ 51 unsigned offset; 52 53 /** 54 * Input to resource_from_handle. 55 * Output from resource_get_handle. 56 */ 57 uint64_t format; 58 59 /** 60 * Input to resource_from_handle. 61 * Output from resource_get_handle. 62 */ 63 uint64_t modifier; 64 65 /** 66 * Input to resource_from_handle. 67 * Output for resource_get_handle. 68 */ 69 void *com_obj; 70}; 71 72#ifdef __cplusplus 73} 74#endif 75 76#endif /* _WINSYS_HANDLE_H_ */ 77