MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-Hpp / main

Function main

tests/StructureChain/StructureChain.cpp:42–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40}
41
42int main()
43{
44 try
45 {
46 vk::detail::defaultDispatchLoaderDynamic.init();
47
48 vk::ApplicationInfo appInfo( AppName, 1, EngineName, 1, vk::ApiVersion11 );
49 vk::UniqueInstance instance = vk::createInstanceUnique( vk::InstanceCreateInfo( {}, &appInfo ) );
50 vk::detail::defaultDispatchLoaderDynamic.init( *instance );
51 vk::PhysicalDevice physicalDevice = instance->enumeratePhysicalDevices().front();
52
53 // some valid StructureChains
54 vk::StructureChain<vk::PhysicalDeviceProperties2> sc0;
55 vk::StructureChain<vk::PhysicalDeviceProperties2, vk::PhysicalDeviceIDProperties> const sc1;
56 auto pdp = sc1.get<vk::PhysicalDeviceProperties2>();
57 VULKAN_HPP_UNUSED( pdp );
58 vk::StructureChain<vk::PhysicalDeviceProperties2, vk::PhysicalDeviceMaintenance3Properties> sc2;
59 vk::StructureChain<vk::PhysicalDeviceProperties2, vk::PhysicalDevicePushDescriptorPropertiesKHR> sc3;
60 vk::StructureChain<vk::PhysicalDeviceProperties2, vk::PhysicalDeviceIDProperties, vk::PhysicalDeviceMaintenance3Properties> sc4;
61 vk::StructureChain<vk::PhysicalDeviceProperties2, vk::PhysicalDeviceIDProperties, vk::PhysicalDevicePushDescriptorPropertiesKHR> sc6;
62 vk::StructureChain<vk::PhysicalDeviceProperties2,
63 vk::PhysicalDeviceIDProperties,
64 vk::PhysicalDeviceMaintenance3Properties,
65 vk::PhysicalDevicePushDescriptorPropertiesKHR>
66 sc7;
67
68#if ( 17 <= VULKAN_HPP_CPP_VERSION ) || defined( VULKAN_HPP_USE_CXX_MODULE )
69 // test for structured binding from a StructureChain
70 auto const & [p0, p1] = sc1;
71 auto & [p2, p3] = sc2;
72#endif
73
74 void * pNext = sc7.get<vk::PhysicalDeviceIDProperties>().pNext;
75 sc7.assign<vk::PhysicalDeviceIDProperties>( {} );
76 release_assert( pNext == sc7.get<vk::PhysicalDeviceIDProperties>().pNext );
77
78 vk::StructureChain<vk::DeviceQueueCreateInfo, vk::DeviceQueueGlobalPriorityCreateInfoKHR> sc8;
79 sc8.assign<vk::DeviceQueueGlobalPriorityCreateInfoKHR>( {} );
80
81 void * pNext1 = sc7.get<vk::PhysicalDeviceMaintenance3Properties>().pNext;
82 sc7.assign<vk::PhysicalDeviceMaintenance3Properties>( {} ).assign<vk::PhysicalDeviceIDProperties>( {} );
83 release_assert( pNext == sc7.get<vk::PhysicalDeviceIDProperties>().pNext );
84 release_assert( pNext1 == sc7.get<vk::PhysicalDeviceMaintenance3Properties>().pNext );
85
86 // some checks on unmodified chains
87 release_assert( sc7.isLinked<vk::PhysicalDeviceProperties2>() );
88 release_assert( sc7.isLinked<vk::PhysicalDeviceMaintenance3Properties>() );
89
90 // some invalid StructureChains
91 // clang-format off
92 //vk::StructureChain<vk::PhysicalDeviceIDProperties, vk::PhysicalDeviceMaintenance3Properties> x;
93 //vk::StructureChain<vk::PhysicalDeviceIDProperties,
94 // vk::PhysicalDeviceMaintenance3Properties,
95 // vk::PhysicalDevicePushDescriptorPropertiesKHR>
96 // x;
97 //vk::StructureChain<vk::PhysicalDeviceIDProperties,
98 // vk::PhysicalDevicePushDescriptorPropertiesKHR,
99 // vk::PhysicalDeviceMaintenance3Properties>

Callers

nothing calls this directly

Calls 4

createInstanceUniqueFunction · 0.85
createInstanceFunction · 0.85
testFunction · 0.85
initMethod · 0.45

Tested by

no test coverage detected