pub struct Resolver<P> where
P: SharedPointerKind, { /* private fields */ }Expand description
A structure which can read and execute render graphs. This pattern was derived from:
http://themaister.net/blog/2017/08/15/render-graphs-and-vulkan-a-deep-dive/ https://github.com/EmbarkStudios/kajiya
Implementations
sourceimpl<P> Resolver<P> where
P: SharedPointerKind,
impl<P> Resolver<P> where
P: SharedPointerKind,
sourcepub fn node_stage_mask(&self, node: impl Node<P>) -> PipelineStageFlags
pub fn node_stage_mask(&self, node: impl Node<P>) -> PipelineStageFlags
Returns the stages that process the given node.
Note that this value must be retrieved before resolving a node as there will be no data left to inspect afterwards!
sourcepub fn record_node_dependencies(
&mut self,
cache: &mut HashPool<P>,
cmd_buf: &CommandBuffer<P>,
node: impl Node<P>
) -> Result<(), DriverError> where
P: 'static,
pub fn record_node_dependencies(
&mut self,
cache: &mut HashPool<P>,
cmd_buf: &CommandBuffer<P>,
node: impl Node<P>
) -> Result<(), DriverError> where
P: 'static,
Records any pending render graph passes that are required by the given node, but does not record any passes that actually contain the given node.
As a side effect, the graph is optimized for the given node. Future calls may further optimize the graph, but only on top of the existing optimizations. This only matters if you are pulling multiple images out and you care - in that case pull the “most important” image first.
sourcepub fn record_node(
&mut self,
cache: &mut HashPool<P>,
cmd_buf: &CommandBuffer<P>,
node: impl Node<P>
) -> Result<(), DriverError> where
P: 'static,
pub fn record_node(
&mut self,
cache: &mut HashPool<P>,
cmd_buf: &CommandBuffer<P>,
node: impl Node<P>
) -> Result<(), DriverError> where
P: 'static,
Records any pending render graph passes that the given node requires.
pub fn unbind_node<N>(&mut self, node: N) -> <N as Edge<Self>>::Result where
N: Edge<Self>,
N: Unbind<Self, <N as Edge<Self>>::Result>,
Trait Implementations
sourceimpl<P: Debug> Debug for Resolver<P> where
P: SharedPointerKind,
impl<P: Debug> Debug for Resolver<P> where
P: SharedPointerKind,
sourceimpl<P> Unbind<Resolver<P>, SwapchainImage<P>> for SwapchainImageNode<P> where
P: SharedPointerKind,
impl<P> Unbind<Resolver<P>, SwapchainImage<P>> for SwapchainImageNode<P> where
P: SharedPointerKind,
fn unbind(self, graph: &mut Resolver<P>) -> SwapchainImage<P>
Auto Trait Implementations
impl<P> !RefUnwindSafe for Resolver<P>
impl<P> !Send for Resolver<P>
impl<P> !Sync for Resolver<P>
impl<P> Unpin for Resolver<P> where
P: Unpin,
impl<P> !UnwindSafe for Resolver<P>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more