| 347 | } |
| 348 | |
| 349 | RunnableGraphPtr FrameGraph::compile( GraphContext & context ) |
| 350 | { |
| 351 | FramePassArray passes; |
| 352 | m_defaultGroup->listPasses( passes ); |
| 353 | |
| 354 | if ( passes.empty() ) |
| 355 | { |
| 356 | Logger::logWarning( "No FramePass registered." ); |
| 357 | CRG_Exception( "No FramePass registered." ); |
| 358 | } |
| 359 | |
| 360 | auto endPoints = builder::findEndPoints( passes ); |
| 361 | RootNode root{ *this }; |
| 362 | GraphNodePtrArray nodes; |
| 363 | builder::buildGraph( endPoints, root, nodes, context.separateDepthStencilLayouts ); |
| 364 | return std::make_unique< RunnableGraph >( *this |
| 365 | , std::move( nodes ) |
| 366 | , std::move( root ) |
| 367 | , context ); |
| 368 | } |
| 369 | |
| 370 | LayoutState FrameGraph::getFinalLayoutState( ImageId image |
| 371 | , ImageViewType viewType |