MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / PhysicalDevices

Class PhysicalDevices

SDKs/vulkan/vulkan/vulkan_raii.hpp:3233–3275  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3231 };
3232
3233 class PhysicalDevices : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice>
3234 {
3235 public:
3236 PhysicalDevices( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance )
3237 {
3238 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher = instance.getDispatcher();
3239 std::vector<VkPhysicalDevice> physicalDevices;
3240 uint32_t physicalDeviceCount;
3241 VULKAN_HPP_NAMESPACE::Result result;
3242 do
3243 {
3244 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3245 dispatcher->vkEnumeratePhysicalDevices( static_cast<VkInstance>( *instance ), &physicalDeviceCount, nullptr ) );
3246 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount )
3247 {
3248 physicalDevices.resize( physicalDeviceCount );
3249 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3250 dispatcher->vkEnumeratePhysicalDevices( static_cast<VkInstance>( *instance ), &physicalDeviceCount, physicalDevices.data() ) );
3251 }
3252 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
3253 if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
3254 {
3255 VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
3256 this->reserve( physicalDeviceCount );
3257 for ( auto const & physicalDevice : physicalDevices )
3258 {
3259 this->emplace_back( instance, physicalDevice );
3260 }
3261 }
3262 else
3263 {
3264 throwResultException( result, "vkEnumeratePhysicalDevices" );
3265 }
3266 }
3267
3268 PhysicalDevices( std::nullptr_t ) {}
3269
3270 PhysicalDevices() = delete;
3271 PhysicalDevices( PhysicalDevices const & ) = delete;
3272 PhysicalDevices( PhysicalDevices && rhs ) = default;
3273 PhysicalDevices & operator=( PhysicalDevices const & ) = delete;
3274 PhysicalDevices & operator=( PhysicalDevices && rhs ) = default;
3275 };
3276
3277 class Device
3278 {

Callers 1

vulkan_raii.hppFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected