#if !defined(VK_CAPTURE_H_INCLUDED) #define VK_CAPTURE_H_INCLUDED 1 #include #include "vk_function_ids.h" #if defined(__cplusplus) extern "C" { #endif VK_DEFINE_HANDLE(VkRecordListMWN); static const VkStructureType VK_STRUCTURE_TYPE_RECORD_LIST_ALLOCATE_INFO_MWN = (VkStructureType) 2000144777; // pretty random, but should be fine I guess static const VkStructureType VK_STRUCTURE_TYPE_RECORD_INFO_MWN = (VkStructureType) 2000144778; typedef enum VkRecordListAllocateFlagBitsMWN { VK_RECORD_LIST_ALLOCATE_FLAG_BITS_NONE_MWN = 0, VK_RECORD_LIST_ALLOCATE_FLAG_BITS_MAX_ENUM_MWN = 0x7FFFFFFF } VkRecordListAllocateFlagBitsMWN; typedef VkFlags VkRecordListAllocateFlagsMWN; typedef enum VkRecordFlagBitsMWN { VK_RECORD_FLAG_BITS_NONE_MWN = 0, VK_RECORD_FLAG_BITS_MAX_ENUM_MWN = 0x7FFFFFFF } VkRecordFlagBitsMWN; typedef VkFlags VkRecordFlags; typedef struct VkRecordListAllocateInfoMWN { VkStructureType sType; void* pNext; VkRecordListAllocateFlagsMWN flags; } VkRecordListAllocateInfoMWN; typedef struct VkRecordInfoMWN { VkStructureType sType; void* pNext; VkRecordFlags flags; VkRecordListMWN recordList; } VkRecordInfoMWN; typedef enum VkVariantTypeMWN { VK_VARIANT_TYPE_UNKNOWN_MWN = 0, VK_VARIANT_TYPE_NONE_MWN = 1, VK_VARIANT_TYPE_BOOL_MWN = 2, VK_VARIANT_TYPE_UINT8_MWN = 3, VK_VARIANT_TYPE_INT8_MWN = 4, VK_VARIANT_TYPE_UINT16_MWN = 5, VK_VARIANT_TYPE_INT16_MWN = 6, VK_VARIANT_TYPE_UINT32_MWN = 7, VK_VARIANT_TYPE_INT32_MWN = 8, VK_VARIANT_TYPE_UINT64_MWN = 9, VK_VARIANT_TYPE_INT64_MWN = 10, VK_VARIANT_TYPE_FLOAT_MWN = 11, VK_VARIANT_TYPE_DOUBLE_MWN = 12, VK_VARIANT_TYPE_STRING_MWN = 13, VK_VARIANT_TYPE_VOID_POINTER_MWN = 14, VK_VARIANT_TYPE_POINTER_MWN = 15, VK_VARIANT_TYPE_ARRAY_MWN = 16, VK_VARIANT_TYPE_IN_STRUCTURE_MWN = 17, VK_VARIANT_TYPE_OUT_STRUCTURE_MWN = 18, VK_VARIANT_TYPE_OBJECT_MWN = 19 } VkVariantTypeMWN; typedef struct VkVariantObjectValueMWN { void* value; VkObjectType type; } VkVariantObjectValueMWN; typedef struct VkVariantArrayValueMWN { size_t numElements; struct VkVariantMWN* elements; } VkVariantArrayValueMWN; typedef struct VkVariantMWN { VkVariantTypeMWN type; union { uint64_t uintValue; int64_t intValue; float floatValue; double doubleValue; const char* stringValue; const void* voidPointerValue; VkVariantMWN* pointerValue; VkVariantArrayValueMWN arrayValue; VkBaseInStructure* inStructureValue; VkBaseOutStructure* outStructureValue; VkVariantObjectValueMWN objectValue; }; } VkVariantMWN; typedef struct VkRecordListItemMWN { VkFunctionMWN function; VkVariantMWN returnValue; uint32_t numParameters; VkVariantMWN* pParameterValues; } VkRecordListItemMWN; typedef struct VkRecordListItemFormatMWN { int todo; } VkRecordListItemFormatMWN; typedef VkResult (VKAPI_PTR *PFN_vkAllocateRecordListMWN)(VkDevice device, const VkRecordListAllocateInfoMWN* pCreateInfo, VkRecordListMWN* pRecordList); typedef void (VKAPI_PTR *PFN_vkFreeRecordListMWN)(VkDevice device, VkRecordListMWN recordList); typedef VkResult (VKAPI_PTR *PFN_vkBeginRecordingMWN)(VkDevice device, const VkRecordInfoMWN* pRecordInfo); typedef void (VKAPI_PTR *PFN_vkEndRecordingMWN)(VkDevice device); typedef VkResult (VKAPI_PTR *PFN_vkGetRecordListItemsMWN)(VkDevice device, VkRecordListMWN recordList, uint32_t* pItemCount, VkRecordListItemMWN** pItems); typedef VkResult (VKAPI_PTR *PFN_vkResetRecordListMWN)(VkDevice device, VkRecordListMWN recordList); // utility typedef VkResult (VKAPI_PTR *PFN_vkGetFunctionNameMWN)(VkDevice device, VkFunctionMWN function, const char** pName); #if defined(__cplusplus) } // extern "C" #endif #endif //VK_CAPTURE_H_INCLUDED