123 lines
3.9 KiB
C
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
|