| 138 | } |
| 139 | |
| 140 | BufferViewId ResourceHandler::createViewId( BufferViewData const & view ) |
| 141 | { |
| 142 | lock_type lock( m_bufferViewsMutex ); |
| 143 | auto it = std::find_if( m_bufferViewIds.begin() |
| 144 | , m_bufferViewIds.end() |
| 145 | , [&view]( BufferViewIdDataOwnerCont::value_type const & lookup ) |
| 146 | { |
| 147 | return *lookup.second == view; |
| 148 | } ); |
| 149 | BufferViewId result{}; |
| 150 | |
| 151 | if ( it == m_bufferViewIds.end() ) |
| 152 | { |
| 153 | auto data = std::make_unique< BufferViewData >( view ); |
| 154 | result = BufferViewId{ uint32_t( m_bufferViewIds.size() + 1u ), data.get() }; |
| 155 | m_bufferViewIds.try_emplace( result, std::move( data ) ); |
| 156 | } |
| 157 | else |
| 158 | { |
| 159 | result = it->first; |
| 160 | } |
| 161 | |
| 162 | return result; |
| 163 | } |
| 164 | |
| 165 | ResourceHandler::CreatedT< VkBuffer > ResourceHandler::createBuffer( GraphContext & context |
| 166 | , BufferId bufferId ) |