MCPcopy Create free account
hub / github.com/DragonJoker/RenderGraph / mergeViews

Method mergeViews

source/RenderGraph/FrameGraph.cpp:216–251  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

214 }
215
216 ImageViewId FrameGraph::mergeViews( ImageViewIdArray const & views
217 , bool mergeMipLevels
218 , bool mergeArrayLayers )
219 {
220 ImageViewData data;
221 for ( auto & view : views )
222 fgph::mergeViewData( view, mergeMipLevels, mergeArrayLayers, data );
223
224 if ( data.info.subresourceRange.layerCount > 1u )
225 {
226 switch ( data.info.viewType )
227 {
228 case ImageViewType::e1D:
229 data.info.viewType = ImageViewType::e1DArray;
230 break;
231 case ImageViewType::e2D:
232 if ( checkFlag( data.image.data->info.flags, ImageCreateFlags::eCubeCompatible )
233 && ( data.info.subresourceRange.layerCount % 6u ) == 0u
234 && data.info.subresourceRange.baseArrayLayer == 0u )
235 data.info.viewType = ( data.info.subresourceRange.layerCount > 6u )
236 ? ImageViewType::eCubeArray
237 : ImageViewType::eCube;
238 else
239 data.info.viewType = ImageViewType::e2DArray;
240 break;
241 case ImageViewType::eCube:
242 if ( data.info.subresourceRange.layerCount > 6u )
243 data.info.viewType = ImageViewType::eCubeArray;
244 break;
245 default:
246 break;
247 }
248 }
249
250 return createView( data );
251 }
252
253 BufferViewId FrameGraph::mergeViews( BufferViewIdArray const & views )
254 {

Callers 3

mergeAttachmentsFunction · 0.45
TESTFunction · 0.45
TESTFunction · 0.45

Calls 2

mergeViewDataFunction · 0.85
createViewFunction · 0.85

Tested by 2

TESTFunction · 0.36
TESTFunction · 0.36