| 6773 | }; |
| 6774 | |
| 6775 | class DescriptorSets : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> |
| 6776 | { |
| 6777 | public: |
| 6778 | DescriptorSets( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, |
| 6779 | VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) |
| 6780 | { |
| 6781 | VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); |
| 6782 | std::vector<VkDescriptorSet> descriptorSets( allocateInfo.descriptorSetCount ); |
| 6783 | VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkAllocateDescriptorSets( |
| 6784 | static_cast<VkDevice>( *device ), reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), descriptorSets.data() ) ); |
| 6785 | if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) |
| 6786 | { |
| 6787 | this->reserve( allocateInfo.descriptorSetCount ); |
| 6788 | for ( auto const & descriptorSet : descriptorSets ) |
| 6789 | { |
| 6790 | this->emplace_back( device, descriptorSet, static_cast<VkDescriptorPool>( allocateInfo.descriptorPool ) ); |
| 6791 | } |
| 6792 | } |
| 6793 | else |
| 6794 | { |
| 6795 | throwResultException( result, "vkAllocateDescriptorSets" ); |
| 6796 | } |
| 6797 | } |
| 6798 | |
| 6799 | DescriptorSets( std::nullptr_t ) {} |
| 6800 | |
| 6801 | DescriptorSets() = delete; |
| 6802 | DescriptorSets( DescriptorSets const & ) = delete; |
| 6803 | DescriptorSets( DescriptorSets && rhs ) = default; |
| 6804 | DescriptorSets & operator=( DescriptorSets const & ) = delete; |
| 6805 | DescriptorSets & operator=( DescriptorSets && rhs ) = default; |
| 6806 | }; |
| 6807 | |
| 6808 | class DescriptorSetLayout |
| 6809 | { |