| 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 | { |