mirror of
https://github.com/KhronosGroup/Vulkan-Hpp
synced 2024-11-09 14:10:07 +00:00
Introduce helper class vk::StridedArrayProxy; use it on functions with parameters having the 'stride' attribute.
This commit is contained in:
parent
833e6f576d
commit
34725b3192
File diff suppressed because it is too large
Load Diff
@ -20,6 +20,8 @@
|
|||||||
#include <tinyxml2.h>
|
#include <tinyxml2.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
const size_t INVALID_INDEX = (size_t)~0;
|
||||||
|
|
||||||
class VulkanHppGenerator
|
class VulkanHppGenerator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -110,6 +112,7 @@ private:
|
|||||||
std::vector<std::string> arraySizes;
|
std::vector<std::string> arraySizes;
|
||||||
std::string len;
|
std::string len;
|
||||||
bool optional;
|
bool optional;
|
||||||
|
std::string stride;
|
||||||
int xmlLine;
|
int xmlLine;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -350,11 +353,17 @@ private:
|
|||||||
std::string referencedIn;
|
std::string referencedIn;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct VectorParamData
|
||||||
|
{
|
||||||
|
size_t lenParam = INVALID_INDEX;
|
||||||
|
size_t strideParam = INVALID_INDEX;
|
||||||
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addCommand( std::string const & name, CommandData & commandData );
|
void addCommand( std::string const & name, CommandData & commandData );
|
||||||
void addMissingFlagBits( std::vector<RequireData> & requireData, std::string const & referencedIn );
|
void addMissingFlagBits( std::vector<RequireData> & requireData, std::string const & referencedIn );
|
||||||
std::string addTitleAndProtection( std::string const & title, std::string const & strIf, std::string const & strElse = {} ) const;
|
std::string addTitleAndProtection( std::string const & title, std::string const & strIf, std::string const & strElse = {} ) const;
|
||||||
bool allVectorSizesSupported( std::vector<ParamData> const & params, std::map<size_t, size_t> const & vectorParams ) const;
|
bool allVectorSizesSupported( std::vector<ParamData> const & params, std::map<size_t, VectorParamData> const & vectorParams ) const;
|
||||||
void appendDispatchLoaderDynamicCommands( std::vector<RequireData> const & requireData,
|
void appendDispatchLoaderDynamicCommands( std::vector<RequireData> const & requireData,
|
||||||
std::set<std::string> & listedCommands,
|
std::set<std::string> & listedCommands,
|
||||||
std::string const & title,
|
std::string const & title,
|
||||||
@ -385,69 +394,70 @@ private:
|
|||||||
void checkStructCorrectness() const;
|
void checkStructCorrectness() const;
|
||||||
void checkStructMemberCorrectness( std::string const & structureName, std::vector<MemberData> const & members, std::set<std::string> & sTypeValues ) const;
|
void checkStructMemberCorrectness( std::string const & structureName, std::vector<MemberData> const & members, std::set<std::string> & sTypeValues ) const;
|
||||||
void checkValidStructs( int line, std::map<std::string, std::string> const & attributes ) const;
|
void checkValidStructs( int line, std::map<std::string, std::string> const & attributes ) const;
|
||||||
std::string combineDataTypes( std::map<size_t, size_t> const & vectorParams,
|
std::string combineDataTypes( std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
bool singular,
|
bool singular,
|
||||||
bool enumerating,
|
bool enumerating,
|
||||||
std::vector<std::string> const & dataTypes,
|
std::vector<std::string> const & dataTypes,
|
||||||
bool unique,
|
bool unique,
|
||||||
bool raii ) const;
|
bool raii ) const;
|
||||||
bool containsArray( std::string const & type ) const;
|
bool containsArray( std::string const & type ) const;
|
||||||
bool containsFuncPointer( std::string const & type ) const;
|
bool containsFuncPointer( std::string const & type ) const;
|
||||||
bool containsFloatingPoints( std::vector<MemberData> const & members ) const;
|
bool containsFloatingPoints( std::vector<MemberData> const & members ) const;
|
||||||
bool containsUnion( std::string const & type ) const;
|
bool containsUnion( std::string const & type ) const;
|
||||||
std::vector<size_t> determineConstPointerParams( std::vector<ParamData> const & params ) const;
|
std::vector<size_t> determineConstPointerParams( std::vector<ParamData> const & params ) const;
|
||||||
std::vector<std::string> determineDataTypes( std::vector<VulkanHppGenerator::ParamData> const & params,
|
std::vector<std::string> determineDataTypes( std::vector<VulkanHppGenerator::ParamData> const & params,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::set<size_t> const & templatedParams,
|
||||||
bool raii ) const;
|
bool raii ) const;
|
||||||
size_t determineDefaultStartIndex( std::vector<ParamData> const & params, std::set<size_t> const & skippedParams ) const;
|
size_t determineDefaultStartIndex( std::vector<ParamData> const & params, std::set<size_t> const & skippedParams ) const;
|
||||||
bool determineEnumeration( std::map<size_t, size_t> const & vectorParams, std::vector<size_t> const & returnParams ) const;
|
bool determineEnumeration( std::map<size_t, VectorParamData> const & vectorParams, std::vector<size_t> const & returnParams ) const;
|
||||||
size_t determineInitialSkipCount( std::string const & command ) const;
|
size_t determineInitialSkipCount( std::string const & command ) const;
|
||||||
std::vector<size_t> determineReturnParams( std::vector<ParamData> const & params ) const;
|
std::vector<size_t> determineReturnParams( std::vector<ParamData> const & params ) const;
|
||||||
std::vector<std::map<std::string, CommandData>::const_iterator>
|
std::vector<std::map<std::string, CommandData>::const_iterator>
|
||||||
determineRAIIHandleConstructors( std::string const & handleType, std::map<std::string, CommandData>::const_iterator destructorIt ) const;
|
determineRAIIHandleConstructors( std::string const & handleType, std::map<std::string, CommandData>::const_iterator destructorIt ) const;
|
||||||
std::map<std::string, CommandData>::const_iterator determineRAIIHandleDestructor( std::string const & handleType ) const;
|
std::map<std::string, CommandData>::const_iterator determineRAIIHandleDestructor( std::string const & handleType ) const;
|
||||||
std::set<size_t> determineSkippedParams( std::vector<ParamData> const & params,
|
std::set<size_t> determineSingularParams( size_t returnParam, std::map<size_t, VectorParamData> const & vectorParams ) const;
|
||||||
size_t initialSkipCount,
|
std::set<size_t> determineSkippedParams( std::vector<ParamData> const & params,
|
||||||
std::map<size_t, size_t> const & vectorParamIndices,
|
size_t initialSkipCount,
|
||||||
std::vector<size_t> const & returnParam,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool singular ) const;
|
std::vector<size_t> const & returnParam,
|
||||||
std::string determineSubStruct( std::pair<std::string, StructureData> const & structure ) const;
|
bool singular ) const;
|
||||||
std::map<size_t, size_t> determineVectorParams( std::vector<ParamData> const & params ) const;
|
std::string determineSubStruct( std::pair<std::string, StructureData> const & structure ) const;
|
||||||
std::set<size_t> determineVoidPointerParams( std::vector<ParamData> const & params ) const;
|
std::map<size_t, VectorParamData> determineVectorParams( std::vector<ParamData> const & params ) const;
|
||||||
void distributeSecondLevelCommands( std::set<std::string> const & specialFunctions );
|
std::set<size_t> determineVoidPointerParams( std::vector<ParamData> const & params ) const;
|
||||||
std::string findBaseName( std::string aliasName, std::map<std::string, EnumAliasData> const & aliases ) const;
|
void distributeSecondLevelCommands( std::set<std::string> const & specialFunctions );
|
||||||
std::vector<MemberData>::const_iterator findStructMemberIt( std::string const & name, std::vector<MemberData> const & memberData ) const;
|
std::string findBaseName( std::string aliasName, std::map<std::string, EnumAliasData> const & aliases ) const;
|
||||||
std::vector<MemberData>::const_iterator findStructMemberItByType( std::string const & type, std::vector<MemberData> const & memberData ) const;
|
std::vector<MemberData>::const_iterator findStructMemberIt( std::string const & name, std::vector<MemberData> const & memberData ) const;
|
||||||
std::pair<std::string, std::string> generateAllocatorTemplates( std::vector<size_t> const & returnParams,
|
std::vector<MemberData>::const_iterator findStructMemberItByType( std::string const & type, std::vector<MemberData> const & memberData ) const;
|
||||||
std::vector<std::string> const & returnDataTypes,
|
std::pair<std::string, std::string> generateAllocatorTemplates( std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::vector<std::string> const & returnDataTypes,
|
||||||
bool definition,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool singular,
|
bool definition,
|
||||||
bool unique,
|
bool singular,
|
||||||
bool chained ) const;
|
bool unique,
|
||||||
std::string generateArgumentListEnhanced( std::vector<ParamData> const & params,
|
bool chained ) const;
|
||||||
std::vector<size_t> const & returnParams,
|
std::string generateArgumentListEnhanced( std::vector<ParamData> const & params,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::set<size_t> const & skippedParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::set<size_t> const & singularParams,
|
std::set<size_t> const & skippedParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::set<size_t> const & singularParams,
|
||||||
bool definition,
|
std::set<size_t> const & templatedParams,
|
||||||
bool withAllocators,
|
bool definition,
|
||||||
bool structureChain,
|
bool withAllocators,
|
||||||
bool withDispatcher ) const;
|
bool structureChain,
|
||||||
std::string generateArgumentListStandard( std::vector<ParamData> const & params, std::set<size_t> const & skippedParams ) const;
|
bool withDispatcher ) const;
|
||||||
std::string generateArgumentTemplates( std::vector<ParamData> const & params,
|
std::string generateArgumentListStandard( std::vector<ParamData> const & params, std::set<size_t> const & skippedParams ) const;
|
||||||
std::vector<size_t> const & returnParams,
|
std::string generateArgumentTemplates( std::vector<ParamData> const & params,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool chained,
|
std::set<size_t> const & templatedParams,
|
||||||
bool raii ) const;
|
bool chained,
|
||||||
std::string generateBaseTypes() const;
|
bool raii ) const;
|
||||||
std::string generateBitmask( std::map<std::string, BitmaskData>::const_iterator bitmaskIt ) const;
|
std::string generateBaseTypes() const;
|
||||||
std::string generateBitmasks() const;
|
std::string generateBitmask( std::map<std::string, BitmaskData>::const_iterator bitmaskIt ) const;
|
||||||
|
std::string generateBitmasks() const;
|
||||||
std::string generateBitmasks( std::vector<RequireData> const & requireData, std::set<std::string> & listedBitmasks, std::string const & title ) const;
|
std::string generateBitmasks( std::vector<RequireData> const & requireData, std::set<std::string> & listedBitmasks, std::string const & title ) const;
|
||||||
std::string generateBitmasksToString() const;
|
std::string generateBitmasksToString() const;
|
||||||
std::string generateBitmasksToString( std::vector<RequireData> const & requireData, std::set<std::string> & listedBitmasks, std::string const & title ) const;
|
std::string generateBitmasksToString( std::vector<RequireData> const & requireData, std::set<std::string> & listedBitmasks, std::string const & title ) const;
|
||||||
@ -476,31 +486,31 @@ private:
|
|||||||
std::string generateCallArgumentEnhancedNonConstPointer(
|
std::string generateCallArgumentEnhancedNonConstPointer(
|
||||||
ParamData const & param, size_t paramIndex, bool nonConstPointerAsNullptr, std::set<size_t> const & singularParams, bool raiiHandleMemberFunction ) const;
|
ParamData const & param, size_t paramIndex, bool nonConstPointerAsNullptr, std::set<size_t> const & singularParams, bool raiiHandleMemberFunction ) const;
|
||||||
std::string generateCallArgumentEnhancedValue( std::vector<ParamData> const & params, size_t paramIndex, std::set<size_t> const & singularParams ) const;
|
std::string generateCallArgumentEnhancedValue( std::vector<ParamData> const & params, size_t paramIndex, std::set<size_t> const & singularParams ) const;
|
||||||
std::string generateCallSequence( std::string const & name,
|
std::string generateCallSequence( std::string const & name,
|
||||||
CommandData const & commandData,
|
CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
std::set<size_t> const & singularParams,
|
std::set<size_t> const & singularParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::set<size_t> const & templatedParams,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool raii ) const;
|
bool raii ) const;
|
||||||
std::string generateChainTemplates( std::vector<size_t> const & returnParams, bool chained ) const;
|
std::string generateChainTemplates( std::vector<size_t> const & returnParams, bool chained ) const;
|
||||||
std::string generateCommand( std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition ) const;
|
std::string generateCommand( std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition ) const;
|
||||||
std::string generateCommandDefinitions() const;
|
std::string generateCommandDefinitions() const;
|
||||||
std::string
|
std::string
|
||||||
generateCommandDefinitions( std::vector<RequireData> const & requireData, std::set<std::string> & listedCommands, std::string const & title ) const;
|
generateCommandDefinitions( std::vector<RequireData> const & requireData, std::set<std::string> & listedCommands, std::string const & title ) const;
|
||||||
std::string generateCommandDefinitions( std::string const & command, std::string const & handle ) const;
|
std::string generateCommandDefinitions( std::string const & command, std::string const & handle ) const;
|
||||||
std::string generateCommandEnhanced( std::string const & name,
|
std::string generateCommandEnhanced( std::string const & name,
|
||||||
CommandData const & commandData,
|
CommandData const & commandData,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
bool definition,
|
bool definition,
|
||||||
std::map<size_t, size_t> const & vectorParamIndices,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
bool singular,
|
bool singular,
|
||||||
bool withAllocator,
|
bool withAllocator,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool unique ) const;
|
bool unique ) const;
|
||||||
std::string generateCommandName( std::string const & vulkanCommandName,
|
std::string generateCommandName( std::string const & vulkanCommandName,
|
||||||
std::vector<ParamData> const & params,
|
std::vector<ParamData> const & params,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
@ -533,26 +543,26 @@ private:
|
|||||||
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
||||||
std::string generateCommandResultSingleSuccessWithErrors1ReturnHandle(
|
std::string generateCommandResultSingleSuccessWithErrors1ReturnHandle(
|
||||||
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
||||||
std::string generateCommandResultSingleSuccessWithErrors1ReturnHandle1Vector( std::string const & name,
|
std::string generateCommandResultSingleSuccessWithErrors1ReturnHandle1Vector( std::string const & name,
|
||||||
CommandData const & commandData,
|
CommandData const & commandData,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
bool definition,
|
bool definition,
|
||||||
size_t returnParam,
|
size_t returnParam,
|
||||||
std::pair<size_t, size_t> const & vectorParamIndex ) const;
|
std::pair<size_t, VectorParamData> const & vectorParamIndex ) const;
|
||||||
std::string generateCommandResultSingleSuccessWithErrors1ReturnHandle2Vector( std::string const & name,
|
std::string generateCommandResultSingleSuccessWithErrors1ReturnHandle2Vector( std::string const & name,
|
||||||
CommandData const & commandData,
|
CommandData const & commandData,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
bool definition,
|
bool definition,
|
||||||
size_t returnParam,
|
size_t returnParam,
|
||||||
std::map<size_t, size_t> const & vectorParamIndices ) const;
|
std::map<size_t, VectorParamData> const & vectorParamIndices ) const;
|
||||||
std::string generateCommandResultSingleSuccessWithErrors1ReturnValue(
|
std::string generateCommandResultSingleSuccessWithErrors1ReturnValue(
|
||||||
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
||||||
std::string generateCommandResultSingleSuccessWithErrors1ReturnValue2Vectors( std::string const & name,
|
std::string generateCommandResultSingleSuccessWithErrors1ReturnValue2Vectors( std::string const & name,
|
||||||
CommandData const & commandData,
|
CommandData const & commandData,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
bool definition,
|
bool definition,
|
||||||
size_t returnParam,
|
size_t returnParam,
|
||||||
std::map<size_t, size_t> const & vectorParamIndices ) const;
|
std::map<size_t, VectorParamData> const & vectorParamIndices ) const;
|
||||||
std::string generateCommandResultSingleSuccessWithErrors1ReturnVoid(
|
std::string generateCommandResultSingleSuccessWithErrors1ReturnVoid(
|
||||||
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, size_t returnParam ) const;
|
||||||
std::string generateCommandResultSingleSuccessWithErrors2Return(
|
std::string generateCommandResultSingleSuccessWithErrors2Return(
|
||||||
@ -611,62 +621,62 @@ private:
|
|||||||
std::string generateCommandVoid2Return(
|
std::string generateCommandVoid2Return(
|
||||||
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, std::vector<size_t> const & returnParamIndices ) const;
|
std::string const & name, CommandData const & commandData, size_t initialSkipCount, bool definition, std::vector<size_t> const & returnParamIndices ) const;
|
||||||
std::string generateConstexprString( std::string const & structName ) const;
|
std::string generateConstexprString( std::string const & structName ) const;
|
||||||
std::string generateDataDeclarations( CommandData const & commandData,
|
std::string generateDataDeclarations( CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::set<size_t> const & templatedParams,
|
||||||
bool singular,
|
bool singular,
|
||||||
bool withAllocator,
|
bool withAllocator,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool unique,
|
bool unique,
|
||||||
bool raii,
|
bool raii,
|
||||||
std::vector<std::string> const & dataTypes,
|
std::vector<std::string> const & dataTypes,
|
||||||
std::string const & dataType,
|
std::string const & dataType,
|
||||||
std::string const & returnType,
|
std::string const & returnType,
|
||||||
std::string const & returnVariable ) const;
|
std::string const & returnVariable ) const;
|
||||||
std::string generateDataDeclarations1Return( CommandData const & commandData,
|
std::string generateDataDeclarations1Return( CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::set<size_t> const & templatedParams,
|
||||||
bool singular,
|
bool singular,
|
||||||
bool withAllocator,
|
bool withAllocator,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool unique,
|
bool unique,
|
||||||
std::vector<std::string> const & dataTypes,
|
std::vector<std::string> const & dataTypes,
|
||||||
std::string const & dataType,
|
std::string const & dataType,
|
||||||
std::string const & returnType,
|
std::string const & returnType,
|
||||||
std::string const & returnVariable ) const;
|
std::string const & returnVariable ) const;
|
||||||
std::string generateDataDeclarations2Returns( CommandData const & commandData,
|
std::string generateDataDeclarations2Returns( CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool singular,
|
bool singular,
|
||||||
bool withAllocator,
|
bool withAllocator,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool raii,
|
bool raii,
|
||||||
std::vector<std::string> const & dataTypes,
|
std::vector<std::string> const & dataTypes,
|
||||||
std::string const & dataType,
|
std::string const & dataType,
|
||||||
std::string const & returnVariable ) const;
|
std::string const & returnVariable ) const;
|
||||||
std::string generateDataDeclarations3Returns( CommandData const & commandData,
|
std::string generateDataDeclarations3Returns( CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
bool withAllocator,
|
bool withAllocator,
|
||||||
bool raii,
|
bool raii,
|
||||||
std::vector<std::string> const & dataTypes ) const;
|
std::vector<std::string> const & dataTypes ) const;
|
||||||
std::string generateDataPreparation( CommandData const & commandData,
|
std::string generateDataPreparation( CommandData const & commandData,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::set<size_t> const & templatedParams,
|
||||||
bool singular,
|
bool singular,
|
||||||
bool withAllocator,
|
bool withAllocator,
|
||||||
bool unique,
|
bool unique,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool enumerating ) const;
|
bool enumerating ) const;
|
||||||
std::string generateDataSizeChecks( CommandData const & commandData,
|
std::string generateDataSizeChecks( CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::vector<std::string> const & returnParamTypes,
|
std::vector<std::string> const & returnParamTypes,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::set<size_t> const & templatedParams,
|
std::set<size_t> const & templatedParams,
|
||||||
bool singular ) const;
|
bool singular ) const;
|
||||||
std::string generateDispatchLoaderDynamic() const; // uses vkGet*ProcAddress to get function pointers
|
std::string generateDispatchLoaderDynamic() const; // uses vkGet*ProcAddress to get function pointers
|
||||||
std::string generateDispatchLoaderStatic() const; // uses exported symbols from loader
|
std::string generateDispatchLoaderStatic() const; // uses exported symbols from loader
|
||||||
std::string generateDestroyCommand( std::string const & name, CommandData const & commandData ) const;
|
std::string generateDestroyCommand( std::string const & name, CommandData const & commandData ) const;
|
||||||
@ -701,6 +711,12 @@ private:
|
|||||||
std::map<std::vector<MemberData>::const_iterator, std::vector<std::vector<MemberData>::const_iterator>>::const_iterator litit,
|
std::map<std::vector<MemberData>::const_iterator, std::vector<std::vector<MemberData>::const_iterator>>::const_iterator litit,
|
||||||
bool mutualExclusiveLens ) const;
|
bool mutualExclusiveLens ) const;
|
||||||
std::string generateName( TypeInfo const & typeInfo ) const;
|
std::string generateName( TypeInfo const & typeInfo ) const;
|
||||||
|
std::string generateNoExcept( std::vector<std::string> const & errorCodes,
|
||||||
|
std::vector<size_t> const & returnParams,
|
||||||
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
|
bool singular,
|
||||||
|
bool vectorSizeCheck,
|
||||||
|
bool raii ) const;
|
||||||
std::string generateObjectDeleter( std::string const & commandName, CommandData const & commandData, size_t initialSkipCount, size_t returnParam ) const;
|
std::string generateObjectDeleter( std::string const & commandName, CommandData const & commandData, size_t initialSkipCount, size_t returnParam ) const;
|
||||||
std::pair<std::string, std::string> generateProtection( std::string const & referencedIn, std::string const & protect ) const;
|
std::pair<std::string, std::string> generateProtection( std::string const & referencedIn, std::string const & protect ) const;
|
||||||
std::pair<std::string, std::string> generateProtection( std::string const & type, bool isAliased ) const;
|
std::pair<std::string, std::string> generateProtection( std::string const & type, bool isAliased ) const;
|
||||||
@ -716,14 +732,14 @@ private:
|
|||||||
std::string generateRAIIHandleCommandEnhanced( std::map<std::string, CommandData>::const_iterator commandIt,
|
std::string generateRAIIHandleCommandEnhanced( std::map<std::string, CommandData>::const_iterator commandIt,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParamIndices,
|
std::map<size_t, VectorParamData> const & vectorParamIndices,
|
||||||
bool definition,
|
bool definition,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool singular ) const;
|
bool singular ) const;
|
||||||
std::string generateRAIIHandleCommandFactory( std::map<std::string, CommandData>::const_iterator commandIt,
|
std::string generateRAIIHandleCommandFactory( std::map<std::string, CommandData>::const_iterator commandIt,
|
||||||
size_t initialSkipCount,
|
size_t initialSkipCount,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool definition,
|
bool definition,
|
||||||
bool singular ) const;
|
bool singular ) const;
|
||||||
std::string generateRAIIHandleCommandFactoryArgumentList( std::vector<ParamData> const & params,
|
std::string generateRAIIHandleCommandFactoryArgumentList( std::vector<ParamData> const & params,
|
||||||
@ -778,7 +794,7 @@ private:
|
|||||||
std::string const & enter,
|
std::string const & enter,
|
||||||
std::string const & leave,
|
std::string const & leave,
|
||||||
size_t returnParam,
|
size_t returnParam,
|
||||||
std::map<size_t, size_t> const & vectorParamIndices ) const;
|
std::map<size_t, VectorParamData> const & vectorParamIndices ) const;
|
||||||
std::pair<std::string, std::string> generateRAIIHandleConstructors( std::pair<std::string, HandleData> const & handle ) const;
|
std::pair<std::string, std::string> generateRAIIHandleConstructors( std::pair<std::string, HandleData> const & handle ) const;
|
||||||
std::string generateRAIIHandleConstructorArgument( ParamData const & param, bool definition, bool singular, bool takesOwnership ) const;
|
std::string generateRAIIHandleConstructorArgument( ParamData const & param, bool definition, bool singular, bool takesOwnership ) const;
|
||||||
std::string generateRAIIHandleConstructorArguments( std::pair<std::string, HandleData> const & handle,
|
std::string generateRAIIHandleConstructorArguments( std::pair<std::string, HandleData> const & handle,
|
||||||
@ -856,18 +872,18 @@ private:
|
|||||||
bool unique,
|
bool unique,
|
||||||
bool enumerating,
|
bool enumerating,
|
||||||
bool raii ) const;
|
bool raii ) const;
|
||||||
std::string generateReturnType( CommandData const & commandData,
|
std::string generateReturnType( CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool unique,
|
bool unique,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool raii,
|
bool raii,
|
||||||
std::string const & dataType ) const;
|
std::string const & dataType ) const;
|
||||||
std::string generateReturnVariable( CommandData const & commandData,
|
std::string generateReturnVariable( CommandData const & commandData,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool chained,
|
bool chained,
|
||||||
bool singular ) const;
|
bool singular ) const;
|
||||||
std::string
|
std::string
|
||||||
generateSizeCheck( std::vector<std::vector<MemberData>::const_iterator> const & arrayIts, std::string const & structName, bool mutualExclusiveLens ) const;
|
generateSizeCheck( std::vector<std::vector<MemberData>::const_iterator> const & arrayIts, std::string const & structName, bool mutualExclusiveLens ) const;
|
||||||
std::string generateStaticAssertions( std::vector<RequireData> const & requireData, std::string const & title ) const;
|
std::string generateStaticAssertions( std::vector<RequireData> const & requireData, std::string const & title ) const;
|
||||||
@ -893,14 +909,14 @@ private:
|
|||||||
std::string generateSuccessCheck( std::vector<std::string> const & successCodes ) const;
|
std::string generateSuccessCheck( std::vector<std::string> const & successCodes ) const;
|
||||||
std::string generateSuccessCodeList( std::vector<std::string> const & successCodes, bool enumerating ) const;
|
std::string generateSuccessCodeList( std::vector<std::string> const & successCodes, bool enumerating ) const;
|
||||||
std::string generateThrowResultException() const;
|
std::string generateThrowResultException() const;
|
||||||
std::string generateTypenameCheck( std::vector<size_t> const & returnParams,
|
std::string generateTypenameCheck( std::vector<size_t> const & returnParams,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
bool definition,
|
bool definition,
|
||||||
std::vector<std::string> const & dataTypes,
|
std::vector<std::string> const & dataTypes,
|
||||||
bool singular,
|
bool singular,
|
||||||
bool withAllocator,
|
bool withAllocator,
|
||||||
bool unique,
|
bool unique,
|
||||||
bool chained ) const;
|
bool chained ) const;
|
||||||
std::string generateUnion( std::pair<std::string, StructureData> const & structure ) const;
|
std::string generateUnion( std::pair<std::string, StructureData> const & structure ) const;
|
||||||
std::string generateUniqueTypes( std::string const & parentType, std::set<std::string> const & childrenTypes ) const;
|
std::string generateUniqueTypes( std::string const & parentType, std::set<std::string> const & childrenTypes ) const;
|
||||||
std::string generateVectorSizeCheck( std::string const & name,
|
std::string generateVectorSizeCheck( std::string const & name,
|
||||||
@ -912,11 +928,11 @@ private:
|
|||||||
std::pair<std::string, std::string> getParentTypeAndName( std::pair<std::string, HandleData> const & handle ) const;
|
std::pair<std::string, std::string> getParentTypeAndName( std::pair<std::string, HandleData> const & handle ) const;
|
||||||
std::string getPlatform( std::string const & title ) const;
|
std::string getPlatform( std::string const & title ) const;
|
||||||
std::pair<std::string, std::string> getPoolTypeAndName( std::string const & type ) const;
|
std::pair<std::string, std::string> getPoolTypeAndName( std::string const & type ) const;
|
||||||
std::string getVectorSize( std::vector<ParamData> const & params,
|
std::string getVectorSize( std::vector<ParamData> const & params,
|
||||||
std::map<size_t, size_t> const & vectorParamIndices,
|
std::map<size_t, VectorParamData> const & vectorParamIndices,
|
||||||
size_t returnParam,
|
size_t returnParam,
|
||||||
std::string const & returnParamType,
|
std::string const & returnParamType,
|
||||||
std::set<size_t> const & templatedParams ) const;
|
std::set<size_t> const & templatedParams ) const;
|
||||||
bool hasParentHandle( std::string const & handle, std::string const & parent ) const;
|
bool hasParentHandle( std::string const & handle, std::string const & parent ) const;
|
||||||
bool isDeviceCommand( CommandData const & commandData ) const;
|
bool isDeviceCommand( CommandData const & commandData ) const;
|
||||||
bool isHandleType( std::string const & type ) const;
|
bool isHandleType( std::string const & type ) const;
|
||||||
@ -926,10 +942,10 @@ private:
|
|||||||
bool isParam( std::string const & name, std::vector<ParamData> const & params ) const;
|
bool isParam( std::string const & name, std::vector<ParamData> const & params ) const;
|
||||||
bool isStructMember( std::string const & name, std::vector<MemberData> const & memberData ) const;
|
bool isStructMember( std::string const & name, std::vector<MemberData> const & memberData ) const;
|
||||||
bool isStructureChainAnchor( std::string const & type ) const;
|
bool isStructureChainAnchor( std::string const & type ) const;
|
||||||
std::pair<bool, std::map<size_t, std::vector<size_t>>> needsVectorSizeCheck( std::vector<ParamData> const & params,
|
std::pair<bool, std::map<size_t, std::vector<size_t>>> needsVectorSizeCheck( std::vector<ParamData> const & params,
|
||||||
std::map<size_t, size_t> const & vectorParams,
|
std::map<size_t, VectorParamData> const & vectorParams,
|
||||||
std::vector<size_t> const & returnParams,
|
std::vector<size_t> const & returnParams,
|
||||||
std::set<size_t> const & singularParams ) const;
|
std::set<size_t> const & singularParams ) const;
|
||||||
void readCommands( tinyxml2::XMLElement const * element );
|
void readCommands( tinyxml2::XMLElement const * element );
|
||||||
void readCommandsCommand( tinyxml2::XMLElement const * element );
|
void readCommandsCommand( tinyxml2::XMLElement const * element );
|
||||||
ParamData readCommandsCommandParam( tinyxml2::XMLElement const * element, std::vector<ParamData> const & params );
|
ParamData readCommandsCommandParam( tinyxml2::XMLElement const * element, std::vector<ParamData> const & params );
|
||||||
@ -1026,5 +1042,3 @@ private:
|
|||||||
std::string m_version;
|
std::string m_version;
|
||||||
std::string m_vulkanLicenseHeader;
|
std::string m_vulkanLicenseHeader;
|
||||||
};
|
};
|
||||||
|
|
||||||
const size_t INVALID_INDEX = (size_t)~0;
|
|
||||||
|
@ -12,36 +12,18 @@
|
|||||||
, m_ptr( nullptr )
|
, m_ptr( nullptr )
|
||||||
{}
|
{}
|
||||||
|
|
||||||
ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
|
ArrayProxy( T const & value ) VULKAN_HPP_NOEXCEPT
|
||||||
: m_count( 1 )
|
: m_count( 1 )
|
||||||
, m_ptr( &value )
|
, m_ptr( &value )
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
ArrayProxy( uint32_t count, T const * ptr ) VULKAN_HPP_NOEXCEPT
|
||||||
ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( 1 )
|
|
||||||
, m_ptr( &value )
|
|
||||||
{}
|
|
||||||
|
|
||||||
ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( count )
|
|
||||||
, m_ptr( ptr )
|
|
||||||
{}
|
|
||||||
|
|
||||||
template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
|
||||||
ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( count )
|
: m_count( count )
|
||||||
, m_ptr( ptr )
|
, m_ptr( ptr )
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <std::size_t C>
|
template <std::size_t C>
|
||||||
ArrayProxy( T (& ptr)[C] ) VULKAN_HPP_NOEXCEPT
|
ArrayProxy( T const ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
|
||||||
: m_count( C )
|
|
||||||
, m_ptr( ptr )
|
|
||||||
{}
|
|
||||||
|
|
||||||
template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
|
||||||
ArrayProxy( typename std::remove_const<T>::type (& ptr)[C] ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( C )
|
: m_count( C )
|
||||||
, m_ptr( ptr )
|
, m_ptr( ptr )
|
||||||
{}
|
{}
|
||||||
@ -60,20 +42,10 @@
|
|||||||
ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
|
ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
|
||||||
: m_count( static_cast<uint32_t>( list.size() ) )
|
: m_count( static_cast<uint32_t>( list.size() ) )
|
||||||
, m_ptr( list.begin() )
|
, m_ptr( list.begin() )
|
||||||
{}
|
{
|
||||||
|
}
|
||||||
|
|
||||||
ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
|
#if __GNUC__ >= 9
|
||||||
: m_count( static_cast<uint32_t>( list.size() ) )
|
|
||||||
, m_ptr( list.begin() )
|
|
||||||
{}
|
|
||||||
|
|
||||||
template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
|
||||||
ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( static_cast<uint32_t>( list.size() ) )
|
|
||||||
, m_ptr( list.begin() )
|
|
||||||
{}
|
|
||||||
|
|
||||||
# if __GNUC__ >= 9
|
|
||||||
# pragma GCC diagnostic pop
|
# pragma GCC diagnostic pop
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@ -88,15 +60,6 @@
|
|||||||
, m_ptr( v.data() )
|
, m_ptr( v.data() )
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <typename V,
|
|
||||||
typename std::enable_if<
|
|
||||||
std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
|
|
||||||
std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
|
|
||||||
ArrayProxy( V & v ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( static_cast<uint32_t>( v.size() ) )
|
|
||||||
, m_ptr( v.data() )
|
|
||||||
{}
|
|
||||||
|
|
||||||
const T * begin() const VULKAN_HPP_NOEXCEPT
|
const T * begin() const VULKAN_HPP_NOEXCEPT
|
||||||
{
|
{
|
||||||
return m_ptr;
|
return m_ptr;
|
||||||
@ -129,12 +92,12 @@
|
|||||||
return m_count;
|
return m_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
T * data() const VULKAN_HPP_NOEXCEPT
|
T const * data() const VULKAN_HPP_NOEXCEPT
|
||||||
{
|
{
|
||||||
return m_ptr;
|
return m_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint32_t m_count;
|
uint32_t m_count;
|
||||||
T * m_ptr;
|
T const * m_ptr;
|
||||||
};
|
};
|
||||||
|
40
snippets/StridedArrayProxy.hpp
Normal file
40
snippets/StridedArrayProxy.hpp
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
template <typename T>
|
||||||
|
class StridedArrayProxy : protected ArrayProxy<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using ArrayProxy<T>::ArrayProxy;
|
||||||
|
|
||||||
|
StridedArrayProxy( uint32_t count, T const * ptr, uint32_t stride ) VULKAN_HPP_NOEXCEPT
|
||||||
|
: ArrayProxy<T>( count, ptr )
|
||||||
|
, m_stride( stride )
|
||||||
|
{
|
||||||
|
VULKAN_HPP_ASSERT( sizeof( T ) <= stride );
|
||||||
|
}
|
||||||
|
|
||||||
|
using ArrayProxy<T>::begin;
|
||||||
|
|
||||||
|
const T * end() const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + size() * m_stride );
|
||||||
|
}
|
||||||
|
|
||||||
|
using ArrayProxy<T>::front;
|
||||||
|
|
||||||
|
const T & back() const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
VULKAN_HPP_ASSERT( begin() && size() );
|
||||||
|
return *reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + ( size() - 1 ) * m_stride );
|
||||||
|
}
|
||||||
|
|
||||||
|
using ArrayProxy<T>::empty;
|
||||||
|
using ArrayProxy<T>::size;
|
||||||
|
using ArrayProxy<T>::data;
|
||||||
|
|
||||||
|
uint32_t stride() const
|
||||||
|
{
|
||||||
|
return m_stride;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint32_t m_stride = sizeof( T );
|
||||||
|
};
|
@ -58,6 +58,7 @@ add_subdirectory(DispatchLoaderStatic)
|
|||||||
add_subdirectory(FormatTraits)
|
add_subdirectory(FormatTraits)
|
||||||
add_subdirectory(Hash)
|
add_subdirectory(Hash)
|
||||||
add_subdirectory(NoExceptions)
|
add_subdirectory(NoExceptions)
|
||||||
|
add_subdirectory(StridedArrayProxy)
|
||||||
add_subdirectory(StructureChain)
|
add_subdirectory(StructureChain)
|
||||||
add_subdirectory(UniqueHandle)
|
add_subdirectory(UniqueHandle)
|
||||||
add_subdirectory(UniqueHandleDefaultArguments)
|
add_subdirectory(UniqueHandleDefaultArguments)
|
||||||
|
37
tests/StridedArrayProxy/CMakeLists.txt
Normal file
37
tests/StridedArrayProxy/CMakeLists.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Copyright(c) 2018, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.2)
|
||||||
|
|
||||||
|
if (NOT TESTS_BUILD_ONLY_DYNAMIC)
|
||||||
|
project(StridedArrayProxy)
|
||||||
|
|
||||||
|
set(HEADERS
|
||||||
|
)
|
||||||
|
|
||||||
|
set(SOURCES
|
||||||
|
StridedArrayProxy.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
source_group(headers FILES ${HEADERS})
|
||||||
|
source_group(sources FILES ${SOURCES})
|
||||||
|
|
||||||
|
add_executable(StridedArrayProxy
|
||||||
|
${HEADERS}
|
||||||
|
${SOURCES}
|
||||||
|
)
|
||||||
|
|
||||||
|
set_target_properties(StridedArrayProxy PROPERTIES FOLDER "Tests")
|
||||||
|
target_link_libraries(StridedArrayProxy PRIVATE utils)
|
||||||
|
endif()
|
241
tests/StridedArrayProxy/StridedArrayProxy.cpp
Normal file
241
tests/StridedArrayProxy/StridedArrayProxy.cpp
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
// Copyright(c) 2018, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
//
|
||||||
|
// VulkanHpp Samples : StridedArrayProxy
|
||||||
|
// Compile test on using vk::StridedArrayProxy
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <vulkan/vulkan.hpp>
|
||||||
|
#if ( 20 <= VULKAN_HPP_CPP_VERSION )
|
||||||
|
# include <span>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void fct( vk::StridedArrayProxy<int> /*ap*/ ) {}
|
||||||
|
|
||||||
|
void fctc( vk::StridedArrayProxy<const int> /*ap*/ ) {}
|
||||||
|
|
||||||
|
int main( int /*argc*/, char ** /*argv*/ )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// to prevent a warning on unreferenced function vk::getDispatchLoaderStatic, use just one arbitrary vk-function
|
||||||
|
// (void)vk::enumerateInstanceVersion();
|
||||||
|
|
||||||
|
// nullptr_t
|
||||||
|
fct( nullptr );
|
||||||
|
fctc( nullptr );
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<int> ap0 = nullptr;
|
||||||
|
assert( ap0.size() == 0 );
|
||||||
|
|
||||||
|
// Type
|
||||||
|
// fct(2); // not supported: cannot convert argument 1 from 'int' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( 1 );
|
||||||
|
|
||||||
|
int i0 = 1;
|
||||||
|
fct( i0 );
|
||||||
|
fctc( i0 );
|
||||||
|
|
||||||
|
const int i1 = 2;
|
||||||
|
// fct(i1); // not supported: cannot convert argument 1 from 'const int' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( i1 );
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<const int> ap1 = 1;
|
||||||
|
assert( ap1.size() == 1 );
|
||||||
|
vk::StridedArrayProxy<const int> ap2 = i0;
|
||||||
|
assert( ap2.size() == 1 );
|
||||||
|
vk::StridedArrayProxy<const int> ap3 = i1;
|
||||||
|
assert( ap3.size() == 1 );
|
||||||
|
|
||||||
|
// count, T *
|
||||||
|
int * i0p = &i0;
|
||||||
|
fct( { 1, i0p } );
|
||||||
|
fctc( { 1, i0p } );
|
||||||
|
|
||||||
|
// count, T const*
|
||||||
|
int const * i1p = &i1;
|
||||||
|
// fct({ 1, i1p }); // not supported: cannot convert argument 1 from 'initializer list' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( { 1, i1p } );
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<const int> ap4 = { 1, i0p };
|
||||||
|
assert( ap4.size() == 1 );
|
||||||
|
vk::StridedArrayProxy<const int> ap5 = { 1, i1p };
|
||||||
|
assert( ap5.size() == 1 );
|
||||||
|
|
||||||
|
// T[count]
|
||||||
|
int ia0[2] = { 0, 1 };
|
||||||
|
fct( ia0 );
|
||||||
|
fctc( ia0 );
|
||||||
|
|
||||||
|
// const T[count]
|
||||||
|
const int ia1[2] = { 0, 1 };
|
||||||
|
// fct( ia1 ); // not supported: cannot convert argument 1 from 'const int [2]' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( ia1 );
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<const int> ap6 = ia0;
|
||||||
|
assert( ap6.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap7 = ia1;
|
||||||
|
assert( ap7.size() == 2 );
|
||||||
|
|
||||||
|
// std::array<T,N>
|
||||||
|
std::array<int, 2> sa0 = { 0, 1 };
|
||||||
|
fct( sa0 );
|
||||||
|
fctc( sa0 );
|
||||||
|
|
||||||
|
// std::array<T,N> const
|
||||||
|
std::array<const int, 2> sa1 = { 0, 1 };
|
||||||
|
// fct(sa1); // not supported: cannot convert argument 1 from 'std::array<const int,2>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( sa1 );
|
||||||
|
|
||||||
|
std::array<int, 2> const sa2 = { 1, 2 };
|
||||||
|
// fct(sa2); // not supported: cannot convert from 'const _Ty *' to 'T *'
|
||||||
|
fctc( sa2 );
|
||||||
|
|
||||||
|
std::array<const int, 2> const sa3 = { 1, 2 };
|
||||||
|
// fct(sa3); // not supported: cannot convert argument 1 from 'const std::array<const int,2>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( sa3 );
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<int> ap8 = sa0;
|
||||||
|
assert( ap8.size() == 2 );
|
||||||
|
// vk::StridedArrayProxy<int> ap9 = sa1; // not supported: cannot convert from 'std::array<const int,2>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
// vk::StridedArrayProxy<int> ap10 = sa2; // not supported: cannot convert from '_Ty *' to 'T *'
|
||||||
|
// vk::StridedArrayProxy<int> ap11 = sa3; // not supported: cannot convert from 'const std::array<const int,2>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<const int> ap12 = sa0;
|
||||||
|
assert( ap12.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap13 = sa1;
|
||||||
|
assert( ap13.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap14 = sa2;
|
||||||
|
assert( ap14.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap15 = sa3;
|
||||||
|
assert( ap15.size() == 2 );
|
||||||
|
|
||||||
|
// std::vector<T>
|
||||||
|
std::vector<int> sv0 = { 0, 1 };
|
||||||
|
fct( sv0 );
|
||||||
|
fctc( sv0 );
|
||||||
|
|
||||||
|
std::vector<int> const sv1 = { 0, 1 };
|
||||||
|
// fct(sv1); // not supported: cannot convert from 'const _Ty *' to 'T *'
|
||||||
|
fctc( sv1 );
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<int> ap16 = sv0;
|
||||||
|
assert( ap16.size() == 2 );
|
||||||
|
// vk::StridedArrayProxy<int> ap17 = sv1; // not supported: cannot convert from '_Ty *' to 'T *'
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<const int> ap18 = sv0;
|
||||||
|
assert( ap18.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap19 = sv1;
|
||||||
|
assert( ap19.size() == 2 );
|
||||||
|
|
||||||
|
// std::initializer_list
|
||||||
|
fct( {} );
|
||||||
|
fctc( {} );
|
||||||
|
|
||||||
|
// fct({ 0, 1 }); // not supported: cannot convert from 'const _Elem *' to 'T *'
|
||||||
|
fctc( { 0, 1 } );
|
||||||
|
|
||||||
|
int a = 0;
|
||||||
|
int b = 1;
|
||||||
|
// fct({ a, b }); // not supported: cannot convert from 'const _Elem *' to 'T *'
|
||||||
|
fctc( { a, b } );
|
||||||
|
|
||||||
|
auto il0 = { 0, 1 }; // -> std::initializer_list<int>
|
||||||
|
// fct(il0); // not supported: cannot convert from 'const _Elem *' to 'T *'
|
||||||
|
fctc( il0 );
|
||||||
|
|
||||||
|
std::initializer_list<int> il1 = { 0, 1 };
|
||||||
|
// fct(il1); // not supported: cannot convert from 'const _Elem *' to 'T *'
|
||||||
|
fctc( il1 );
|
||||||
|
|
||||||
|
std::initializer_list<const int> il2 = { 0, 1 };
|
||||||
|
// fct(il2); // not supported: cannot convert argument 1 from 'std::initializer_list<T>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( il2 );
|
||||||
|
|
||||||
|
std::initializer_list<int> const il3 = { 0, 1 };
|
||||||
|
// fct(il3); // not supported: cannot convert from 'const _Elem *' to 'T *'
|
||||||
|
fctc( il3 );
|
||||||
|
|
||||||
|
std::initializer_list<const int> const il4 = { 0, 1 };
|
||||||
|
// fct(il4); // not supported: cannot convert argument 1 from 'const std::initializer_list<T>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( il4 );
|
||||||
|
|
||||||
|
// vk::StridedArrayProxy<int> ap20 = il1; // not supported: cannot convert from 'const _Elem *' to 'T *'
|
||||||
|
// vk::StridedArrayProxy<int> ap21 = il2; // not supported: cannot convert from 'std::initializer_list<T>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
// vk::StridedArrayProxy<int> ap22 = il3; // not supported: cannot convert from 'const _Elem *' to 'T *'
|
||||||
|
// vk::StridedArrayProxy<int> ap23 = il4; // not supported: cannot convert from 'const std::initializer_list<T>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<const int> ap24 = {};
|
||||||
|
assert( ap24.size() == 0 );
|
||||||
|
vk::StridedArrayProxy<const int> ap25 = { 0, 1 };
|
||||||
|
assert( ap25.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap26 = il1;
|
||||||
|
assert( ap26.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap27 = il2;
|
||||||
|
assert( ap27.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap28 = il3;
|
||||||
|
assert( ap28.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap29 = il4;
|
||||||
|
assert( ap29.size() == 2 );
|
||||||
|
|
||||||
|
#if defined( VULKAN_HPP_SUPPORT_SPAN )
|
||||||
|
// std::span<T, N>
|
||||||
|
std::span<int> ss0( sa0.begin(), sa0.size() );
|
||||||
|
fct( ss0 );
|
||||||
|
fctc( ss0 );
|
||||||
|
|
||||||
|
// std::span<T,N> const
|
||||||
|
std::span<const int> ss1( sa1.begin(), sa1.size() );
|
||||||
|
// fct(ss1); // not supported: cannot convert from 'std::span<const int>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( ss1 );
|
||||||
|
|
||||||
|
std::span<int> const ss2;
|
||||||
|
fct( ss2 );
|
||||||
|
fctc( ss2 );
|
||||||
|
|
||||||
|
std::span<const int> const ss3( sa3.begin(), sa3.end() );
|
||||||
|
// fct(ss3); // not supported: cannot convert from 'const std::span<const int>' to 'vk::StridedArrayProxy<int>'
|
||||||
|
fctc( ss3 );
|
||||||
|
|
||||||
|
vk::StridedArrayProxy<const int> ap30 = ss0;
|
||||||
|
assert( ap30.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap31 = ss1;
|
||||||
|
assert( ap31.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap32 = ss2;
|
||||||
|
assert( ap32.size() == 2 );
|
||||||
|
vk::StridedArrayProxy<const int> ap33 = ss3;
|
||||||
|
assert( ap33.size() == 2 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct Data
|
||||||
|
{
|
||||||
|
double d;
|
||||||
|
int i;
|
||||||
|
};
|
||||||
|
Data data[3];
|
||||||
|
vk::StridedArrayProxy<double> sap0( 3, reinterpret_cast<double const *>( & data[0]), sizeof( Data ) );
|
||||||
|
}
|
||||||
|
catch ( vk::SystemError const & err )
|
||||||
|
{
|
||||||
|
std::cout << "vk::SystemError: " << err.what() << std::endl;
|
||||||
|
exit( -1 );
|
||||||
|
}
|
||||||
|
catch ( ... )
|
||||||
|
{
|
||||||
|
std::cout << "unknown error\n";
|
||||||
|
exit( -1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -574,41 +574,20 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
|
ArrayProxy( T const & value ) VULKAN_HPP_NOEXCEPT
|
||||||
: m_count( 1 )
|
: m_count( 1 )
|
||||||
, m_ptr( &value )
|
, m_ptr( &value )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
ArrayProxy( uint32_t count, T const * ptr ) VULKAN_HPP_NOEXCEPT
|
||||||
ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( 1 )
|
|
||||||
, m_ptr( &value )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( count )
|
|
||||||
, m_ptr( ptr )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
|
||||||
ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( count )
|
: m_count( count )
|
||||||
, m_ptr( ptr )
|
, m_ptr( ptr )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
template <std::size_t C>
|
template <std::size_t C>
|
||||||
ArrayProxy( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
|
ArrayProxy( T const ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
|
||||||
: m_count( C )
|
|
||||||
, m_ptr( ptr )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
|
||||||
ArrayProxy( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( C )
|
: m_count( C )
|
||||||
, m_ptr( ptr )
|
, m_ptr( ptr )
|
||||||
{
|
{
|
||||||
@ -632,19 +611,6 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( static_cast<uint32_t>( list.size() ) )
|
|
||||||
, m_ptr( list.begin() )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
|
|
||||||
ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( static_cast<uint32_t>( list.size() ) )
|
|
||||||
, m_ptr( list.begin() )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
# if __GNUC__ >= 9
|
# if __GNUC__ >= 9
|
||||||
# pragma GCC diagnostic pop
|
# pragma GCC diagnostic pop
|
||||||
# endif
|
# endif
|
||||||
@ -660,15 +626,6 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename V,
|
|
||||||
typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
|
|
||||||
std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
|
|
||||||
ArrayProxy( V & v ) VULKAN_HPP_NOEXCEPT
|
|
||||||
: m_count( static_cast<uint32_t>( v.size() ) )
|
|
||||||
, m_ptr( v.data() )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
const T * begin() const VULKAN_HPP_NOEXCEPT
|
const T * begin() const VULKAN_HPP_NOEXCEPT
|
||||||
{
|
{
|
||||||
return m_ptr;
|
return m_ptr;
|
||||||
@ -701,14 +658,14 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
return m_count;
|
return m_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
T * data() const VULKAN_HPP_NOEXCEPT
|
T const * data() const VULKAN_HPP_NOEXCEPT
|
||||||
{
|
{
|
||||||
return m_ptr;
|
return m_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint32_t m_count;
|
uint32_t m_count;
|
||||||
T * m_ptr;
|
T const * m_ptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@ -868,6 +825,47 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
T * m_ptr;
|
T * m_ptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
class StridedArrayProxy : protected ArrayProxy<T>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using ArrayProxy<T>::ArrayProxy;
|
||||||
|
|
||||||
|
StridedArrayProxy( uint32_t count, T const * ptr, uint32_t stride ) VULKAN_HPP_NOEXCEPT
|
||||||
|
: ArrayProxy<T>( count, ptr )
|
||||||
|
, m_stride( stride )
|
||||||
|
{
|
||||||
|
VULKAN_HPP_ASSERT( sizeof( T ) <= stride );
|
||||||
|
}
|
||||||
|
|
||||||
|
using ArrayProxy<T>::begin;
|
||||||
|
|
||||||
|
const T * end() const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + size() * m_stride );
|
||||||
|
}
|
||||||
|
|
||||||
|
using ArrayProxy<T>::front;
|
||||||
|
|
||||||
|
const T & back() const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
VULKAN_HPP_ASSERT( begin() && size() );
|
||||||
|
return *reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + ( size() - 1 ) * m_stride );
|
||||||
|
}
|
||||||
|
|
||||||
|
using ArrayProxy<T>::empty;
|
||||||
|
using ArrayProxy<T>::size;
|
||||||
|
using ArrayProxy<T>::data;
|
||||||
|
|
||||||
|
uint32_t stride() const
|
||||||
|
{
|
||||||
|
return m_stride;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint32_t m_stride = sizeof( T );
|
||||||
|
};
|
||||||
|
|
||||||
template <typename RefType>
|
template <typename RefType>
|
||||||
class Optional
|
class Optional
|
||||||
{
|
{
|
||||||
|
@ -4359,15 +4359,15 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
VkFlags( ImageUsageFlagBits::eDepthStencilAttachment ) | VkFlags( ImageUsageFlagBits::eTransientAttachment ) |
|
VkFlags( ImageUsageFlagBits::eDepthStencilAttachment ) | VkFlags( ImageUsageFlagBits::eTransientAttachment ) |
|
||||||
VkFlags( ImageUsageFlagBits::eInputAttachment )
|
VkFlags( ImageUsageFlagBits::eInputAttachment )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( ImageUsageFlagBits::eVideoDecodeDstKHR ) | VkFlags( ImageUsageFlagBits::eVideoDecodeSrcKHR ) |
|
| VkFlags( ImageUsageFlagBits::eVideoDecodeDstKHR ) | VkFlags( ImageUsageFlagBits::eVideoDecodeSrcKHR ) |
|
||||||
VkFlags( ImageUsageFlagBits::eVideoDecodeDpbKHR )
|
VkFlags( ImageUsageFlagBits::eVideoDecodeDpbKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
| VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT ) | VkFlags( ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
|
| VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT ) | VkFlags( ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( ImageUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeSrcKHR ) |
|
| VkFlags( ImageUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeSrcKHR ) |
|
||||||
VkFlags( ImageUsageFlagBits::eVideoEncodeDpbKHR )
|
VkFlags( ImageUsageFlagBits::eVideoEncodeDpbKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
| VkFlags( ImageUsageFlagBits::eAttachmentFeedbackLoopEXT ) | VkFlags( ImageUsageFlagBits::eInvocationMaskHUAWEI ) |
|
| VkFlags( ImageUsageFlagBits::eAttachmentFeedbackLoopEXT ) | VkFlags( ImageUsageFlagBits::eInvocationMaskHUAWEI ) |
|
||||||
VkFlags( ImageUsageFlagBits::eSampleWeightQCOM ) | VkFlags( ImageUsageFlagBits::eSampleBlockMatchQCOM )
|
VkFlags( ImageUsageFlagBits::eSampleWeightQCOM ) | VkFlags( ImageUsageFlagBits::eSampleBlockMatchQCOM )
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -4499,7 +4499,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
allFlags = VkFlags( QueueFlagBits::eGraphics ) | VkFlags( QueueFlagBits::eCompute ) | VkFlags( QueueFlagBits::eTransfer ) |
|
allFlags = VkFlags( QueueFlagBits::eGraphics ) | VkFlags( QueueFlagBits::eCompute ) | VkFlags( QueueFlagBits::eTransfer ) |
|
||||||
VkFlags( QueueFlagBits::eSparseBinding ) | VkFlags( QueueFlagBits::eProtected )
|
VkFlags( QueueFlagBits::eSparseBinding ) | VkFlags( QueueFlagBits::eProtected )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( QueueFlagBits::eVideoDecodeKHR ) | VkFlags( QueueFlagBits::eVideoEncodeKHR )
|
| VkFlags( QueueFlagBits::eVideoDecodeKHR ) | VkFlags( QueueFlagBits::eVideoEncodeKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -4850,7 +4850,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
allFlags = VkFlags( QueryResultFlagBits::e64 ) | VkFlags( QueryResultFlagBits::eWait ) | VkFlags( QueryResultFlagBits::eWithAvailability ) |
|
allFlags = VkFlags( QueryResultFlagBits::e64 ) | VkFlags( QueryResultFlagBits::eWait ) | VkFlags( QueryResultFlagBits::eWithAvailability ) |
|
||||||
VkFlags( QueryResultFlagBits::ePartial )
|
VkFlags( QueryResultFlagBits::ePartial )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( QueryResultFlagBits::eWithStatusKHR )
|
| VkFlags( QueryResultFlagBits::eWithStatusKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -4921,13 +4921,13 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
VkFlags( BufferUsageFlagBits::eIndexBuffer ) | VkFlags( BufferUsageFlagBits::eVertexBuffer ) |
|
VkFlags( BufferUsageFlagBits::eIndexBuffer ) | VkFlags( BufferUsageFlagBits::eVertexBuffer ) |
|
||||||
VkFlags( BufferUsageFlagBits::eIndirectBuffer ) | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress )
|
VkFlags( BufferUsageFlagBits::eIndirectBuffer ) | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( BufferUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( BufferUsageFlagBits::eVideoDecodeDstKHR )
|
| VkFlags( BufferUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( BufferUsageFlagBits::eVideoDecodeDstKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
| VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT ) | VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) |
|
| VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT ) | VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) |
|
||||||
VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT ) | VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) |
|
VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT ) | VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) |
|
||||||
VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR ) | VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR )
|
VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR ) | VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( BufferUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( BufferUsageFlagBits::eVideoEncodeSrcKHR )
|
| VkFlags( BufferUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( BufferUsageFlagBits::eVideoEncodeSrcKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -5948,13 +5948,13 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) |
|
VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) | VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) |
|
||||||
VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) | VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
|
VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) | VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
|
||||||
#if defined( VK_USE_PLATFORM_ANDROID_KHR )
|
#if defined( VK_USE_PLATFORM_ANDROID_KHR )
|
||||||
| VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
|
| VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
|
||||||
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
|
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
|
||||||
| VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
|
| VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
|
||||||
#if defined( VK_USE_PLATFORM_FUCHSIA )
|
#if defined( VK_USE_PLATFORM_FUCHSIA )
|
||||||
| VkFlags( ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
|
| VkFlags( ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
|
||||||
#endif /*VK_USE_PLATFORM_FUCHSIA*/
|
#endif /*VK_USE_PLATFORM_FUCHSIA*/
|
||||||
| VkFlags( ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
|
| VkFlags( ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -6170,7 +6170,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) |
|
VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) |
|
||||||
VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
|
VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
|
||||||
#if defined( VK_USE_PLATFORM_FUCHSIA )
|
#if defined( VK_USE_PLATFORM_FUCHSIA )
|
||||||
| VkFlags( ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
|
| VkFlags( ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
|
||||||
#endif /*VK_USE_PLATFORM_FUCHSIA*/
|
#endif /*VK_USE_PLATFORM_FUCHSIA*/
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -6437,9 +6437,9 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
VkFlags64( PipelineStageFlagBits2::eClear ) | VkFlags64( PipelineStageFlagBits2::eIndexInput ) |
|
VkFlags64( PipelineStageFlagBits2::eClear ) | VkFlags64( PipelineStageFlagBits2::eIndexInput ) |
|
||||||
VkFlags64( PipelineStageFlagBits2::eVertexAttributeInput ) | VkFlags64( PipelineStageFlagBits2::ePreRasterizationShaders )
|
VkFlags64( PipelineStageFlagBits2::eVertexAttributeInput ) | VkFlags64( PipelineStageFlagBits2::ePreRasterizationShaders )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags64( PipelineStageFlagBits2::eVideoDecodeKHR ) | VkFlags64( PipelineStageFlagBits2::eVideoEncodeKHR )
|
| VkFlags64( PipelineStageFlagBits2::eVideoDecodeKHR ) | VkFlags64( PipelineStageFlagBits2::eVideoEncodeKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
| VkFlags64( PipelineStageFlagBits2::eTransformFeedbackEXT ) | VkFlags64( PipelineStageFlagBits2::eConditionalRenderingEXT ) |
|
| VkFlags64( PipelineStageFlagBits2::eTransformFeedbackEXT ) | VkFlags64( PipelineStageFlagBits2::eConditionalRenderingEXT ) |
|
||||||
VkFlags64( PipelineStageFlagBits2::eCommandPreprocessNV ) | VkFlags64( PipelineStageFlagBits2::eFragmentShadingRateAttachmentKHR ) |
|
VkFlags64( PipelineStageFlagBits2::eCommandPreprocessNV ) | VkFlags64( PipelineStageFlagBits2::eFragmentShadingRateAttachmentKHR ) |
|
||||||
VkFlags64( PipelineStageFlagBits2::eAccelerationStructureBuildKHR ) | VkFlags64( PipelineStageFlagBits2::eRayTracingShaderKHR ) |
|
VkFlags64( PipelineStageFlagBits2::eAccelerationStructureBuildKHR ) | VkFlags64( PipelineStageFlagBits2::eRayTracingShaderKHR ) |
|
||||||
VkFlags64( PipelineStageFlagBits2::eFragmentDensityProcessEXT ) | VkFlags64( PipelineStageFlagBits2::eTaskShaderEXT ) |
|
VkFlags64( PipelineStageFlagBits2::eFragmentDensityProcessEXT ) | VkFlags64( PipelineStageFlagBits2::eTaskShaderEXT ) |
|
||||||
@ -6487,10 +6487,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
VkFlags64( AccessFlagBits2::eShaderSampledRead ) | VkFlags64( AccessFlagBits2::eShaderStorageRead ) |
|
VkFlags64( AccessFlagBits2::eShaderSampledRead ) | VkFlags64( AccessFlagBits2::eShaderStorageRead ) |
|
||||||
VkFlags64( AccessFlagBits2::eShaderStorageWrite )
|
VkFlags64( AccessFlagBits2::eShaderStorageWrite )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags64( AccessFlagBits2::eVideoDecodeReadKHR ) | VkFlags64( AccessFlagBits2::eVideoDecodeWriteKHR ) |
|
| VkFlags64( AccessFlagBits2::eVideoDecodeReadKHR ) | VkFlags64( AccessFlagBits2::eVideoDecodeWriteKHR ) |
|
||||||
VkFlags64( AccessFlagBits2::eVideoEncodeReadKHR ) | VkFlags64( AccessFlagBits2::eVideoEncodeWriteKHR )
|
VkFlags64( AccessFlagBits2::eVideoEncodeReadKHR ) | VkFlags64( AccessFlagBits2::eVideoEncodeWriteKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
| VkFlags64( AccessFlagBits2::eTransformFeedbackWriteEXT ) | VkFlags64( AccessFlagBits2::eTransformFeedbackCounterReadEXT ) |
|
| VkFlags64( AccessFlagBits2::eTransformFeedbackWriteEXT ) | VkFlags64( AccessFlagBits2::eTransformFeedbackCounterReadEXT ) |
|
||||||
VkFlags64( AccessFlagBits2::eTransformFeedbackCounterWriteEXT ) | VkFlags64( AccessFlagBits2::eConditionalRenderingReadEXT ) |
|
VkFlags64( AccessFlagBits2::eTransformFeedbackCounterWriteEXT ) | VkFlags64( AccessFlagBits2::eConditionalRenderingReadEXT ) |
|
||||||
VkFlags64( AccessFlagBits2::eCommandPreprocessReadNV ) | VkFlags64( AccessFlagBits2::eCommandPreprocessWriteNV ) |
|
VkFlags64( AccessFlagBits2::eCommandPreprocessReadNV ) | VkFlags64( AccessFlagBits2::eCommandPreprocessWriteNV ) |
|
||||||
VkFlags64( AccessFlagBits2::eFragmentShadingRateAttachmentReadKHR ) | VkFlags64( AccessFlagBits2::eAccelerationStructureReadKHR ) |
|
VkFlags64( AccessFlagBits2::eFragmentShadingRateAttachmentReadKHR ) | VkFlags64( AccessFlagBits2::eAccelerationStructureReadKHR ) |
|
||||||
@ -6613,14 +6613,14 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
VkFlags64( FormatFeatureFlagBits2::eStorageReadWithoutFormat ) | VkFlags64( FormatFeatureFlagBits2::eStorageWriteWithoutFormat ) |
|
VkFlags64( FormatFeatureFlagBits2::eStorageReadWithoutFormat ) | VkFlags64( FormatFeatureFlagBits2::eStorageWriteWithoutFormat ) |
|
||||||
VkFlags64( FormatFeatureFlagBits2::eSampledImageDepthComparison )
|
VkFlags64( FormatFeatureFlagBits2::eSampledImageDepthComparison )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags64( FormatFeatureFlagBits2::eVideoDecodeOutputKHR ) | VkFlags64( FormatFeatureFlagBits2::eVideoDecodeDpbKHR )
|
| VkFlags64( FormatFeatureFlagBits2::eVideoDecodeOutputKHR ) | VkFlags64( FormatFeatureFlagBits2::eVideoDecodeDpbKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
| VkFlags64( FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR ) | VkFlags64( FormatFeatureFlagBits2::eFragmentDensityMapEXT ) |
|
| VkFlags64( FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR ) | VkFlags64( FormatFeatureFlagBits2::eFragmentDensityMapEXT ) |
|
||||||
VkFlags64( FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR )
|
VkFlags64( FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR )
|
||||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags64( FormatFeatureFlagBits2::eVideoEncodeInputKHR ) | VkFlags64( FormatFeatureFlagBits2::eVideoEncodeDpbKHR )
|
| VkFlags64( FormatFeatureFlagBits2::eVideoEncodeInputKHR ) | VkFlags64( FormatFeatureFlagBits2::eVideoEncodeDpbKHR )
|
||||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
| VkFlags64( FormatFeatureFlagBits2::eLinearColorAttachmentNV ) | VkFlags64( FormatFeatureFlagBits2::eWeightImageQCOM ) |
|
| VkFlags64( FormatFeatureFlagBits2::eLinearColorAttachmentNV ) | VkFlags64( FormatFeatureFlagBits2::eWeightImageQCOM ) |
|
||||||
VkFlags64( FormatFeatureFlagBits2::eWeightSampledImageQCOM ) | VkFlags64( FormatFeatureFlagBits2::eBlockMatchingQCOM ) |
|
VkFlags64( FormatFeatureFlagBits2::eWeightSampledImageQCOM ) | VkFlags64( FormatFeatureFlagBits2::eBlockMatchingQCOM ) |
|
||||||
VkFlags64( FormatFeatureFlagBits2::eBoxFilterSampledQCOM )
|
VkFlags64( FormatFeatureFlagBits2::eBoxFilterSampledQCOM )
|
||||||
};
|
};
|
||||||
@ -6914,7 +6914,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
{
|
{
|
||||||
allFlags = VkFlags( VideoCodecOperationFlagBitsKHR::eNone )
|
allFlags = VkFlags( VideoCodecOperationFlagBitsKHR::eNone )
|
||||||
# if defined( VK_ENABLE_BETA_EXTENSIONS )
|
# if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH264EXT ) | VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH265EXT ) |
|
| VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH264EXT ) | VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH265EXT ) |
|
||||||
VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH264EXT ) | VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
|
VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH264EXT ) | VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
|
||||||
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
};
|
};
|
||||||
@ -7097,7 +7097,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
{
|
{
|
||||||
allFlags = VkFlags( VideoCodingControlFlagBitsKHR::eReset )
|
allFlags = VkFlags( VideoCodingControlFlagBitsKHR::eReset )
|
||||||
# if defined( VK_ENABLE_BETA_EXTENSIONS )
|
# if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||||
| VkFlags( VideoCodingControlFlagBitsKHR::eEncodeRateControl ) | VkFlags( VideoCodingControlFlagBitsKHR::eEncodeRateControlLayer )
|
| VkFlags( VideoCodingControlFlagBitsKHR::eEncodeRateControl ) | VkFlags( VideoCodingControlFlagBitsKHR::eEncodeRateControlLayer )
|
||||||
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -2516,10 +2516,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
|
VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
|
||||||
uint32_t instanceCustomIndex : 24;
|
uint32_t instanceCustomIndex : 24;
|
||||||
uint32_t mask : 8;
|
uint32_t mask : 8;
|
||||||
uint32_t instanceShaderBindingTableRecordOffset : 24;
|
uint32_t instanceShaderBindingTableRecordOffset : 24;
|
||||||
VkGeometryInstanceFlagsKHR flags : 8;
|
VkGeometryInstanceFlagsKHR flags : 8;
|
||||||
uint64_t accelerationStructureReference = {};
|
uint64_t accelerationStructureReference = {};
|
||||||
};
|
};
|
||||||
using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
|
using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
|
||||||
@ -2662,10 +2662,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
public:
|
public:
|
||||||
VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0 = {};
|
VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0 = {};
|
||||||
VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1 = {};
|
VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1 = {};
|
||||||
uint32_t instanceCustomIndex : 24;
|
uint32_t instanceCustomIndex : 24;
|
||||||
uint32_t mask : 8;
|
uint32_t mask : 8;
|
||||||
uint32_t instanceShaderBindingTableRecordOffset : 24;
|
uint32_t instanceShaderBindingTableRecordOffset : 24;
|
||||||
VkGeometryInstanceFlagsKHR flags : 8;
|
VkGeometryInstanceFlagsKHR flags : 8;
|
||||||
uint64_t accelerationStructureReference = {};
|
uint64_t accelerationStructureReference = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3256,10 +3256,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
public:
|
public:
|
||||||
VULKAN_HPP_NAMESPACE::SRTDataNV transformT0 = {};
|
VULKAN_HPP_NAMESPACE::SRTDataNV transformT0 = {};
|
||||||
VULKAN_HPP_NAMESPACE::SRTDataNV transformT1 = {};
|
VULKAN_HPP_NAMESPACE::SRTDataNV transformT1 = {};
|
||||||
uint32_t instanceCustomIndex : 24;
|
uint32_t instanceCustomIndex : 24;
|
||||||
uint32_t mask : 8;
|
uint32_t mask : 8;
|
||||||
uint32_t instanceShaderBindingTableRecordOffset : 24;
|
uint32_t instanceShaderBindingTableRecordOffset : 24;
|
||||||
VkGeometryInstanceFlagsKHR flags : 8;
|
VkGeometryInstanceFlagsKHR flags : 8;
|
||||||
uint64_t accelerationStructureReference = {};
|
uint64_t accelerationStructureReference = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user