123 lines
3.9 KiB
C

#if !defined(VK_CAPTURE_H_INCLUDED)
#define VK_CAPTURE_H_INCLUDED 1
#include <vulkan/vulkan.h>
#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