[−][src]Struct nannou::vk::pipeline::GraphicsPipeline
Defines how the implementation should perform a draw operation.
This object contains the shaders and the various fixed states that describe how the implementation should perform the various operations needed by a draw command.
Methods
impl GraphicsPipeline<(), (), ()>
[src]
pub fn start(
) -> GraphicsPipelineBuilder<BufferlessDefinition, EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), ()>
[src]
) -> GraphicsPipelineBuilder<BufferlessDefinition, EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), ()>
Starts the building process of a graphics pipeline. Returns a builder object that you can fill with the various parameters.
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>
[src]
pub fn vertex_definition(&self) -> &Mv
[src]
Returns the vertex definition used in the constructor.
pub fn device(&self) -> &Arc<Device>
[src]
Returns the device used to create this pipeline.
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp> where
L: PipelineLayoutAbstract,
[src]
L: PipelineLayoutAbstract,
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp> where
Rp: RenderPassDesc,
[src]
Rp: RenderPassDesc,
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>
[src]
pub fn render_pass(&self) -> &Rp
[src]
Returns the render pass used in the constructor.
pub fn has_dynamic_line_width(&self) -> bool
[src]
Returns true if the line width used by this pipeline is dynamic.
pub fn num_viewports(&self) -> u32
[src]
Returns the number of viewports and scissors of this pipeline.
pub fn has_dynamic_viewports(&self) -> bool
[src]
Returns true if the viewports used by this pipeline are dynamic.
pub fn has_dynamic_scissors(&self) -> bool
[src]
Returns true if the scissors used by this pipeline are dynamic.
pub fn has_dynamic_depth_bounds(&self) -> bool
[src]
Returns true if the depth bounds used by this pipeline are dynamic.
pub fn has_dynamic_stencil_compare_mask(&self) -> bool
[src]
Returns true if the stencil compare masks used by this pipeline are dynamic.
pub fn has_dynamic_stencil_write_mask(&self) -> bool
[src]
Returns true if the stencil write masks used by this pipeline are dynamic.
pub fn has_dynamic_stencil_reference(&self) -> bool
[src]
Returns true if the stencil references used by this pipeline are dynamic.
Trait Implementations
impl<Mv, L, Rp> DeviceOwned for GraphicsPipeline<Mv, L, Rp>
[src]
impl<Mv, L, Rp> RenderPassDesc for GraphicsPipeline<Mv, L, Rp> where
Rp: RenderPassDesc,
[src]
Rp: RenderPassDesc,
fn num_attachments(&self) -> usize
[src]
fn attachment_desc(&self, num: usize) -> Option<AttachmentDescription>
[src]
fn num_subpasses(&self) -> usize
[src]
fn subpass_desc(&self, num: usize) -> Option<PassDescription>
[src]
fn num_dependencies(&self) -> usize
[src]
fn dependency_desc(&self, num: usize) -> Option<PassDependencyDescription>
[src]
ⓘImportant traits for RenderPassDescAttachments<'a, R>fn attachment_descs(&self) -> RenderPassDescAttachments<Self>
[src]
Returns an iterator to the list of attachments.
ⓘImportant traits for RenderPassDescSubpasses<'a, R>fn subpass_descs(&self) -> RenderPassDescSubpasses<Self>
[src]
Returns an iterator to the list of subpasses.
ⓘImportant traits for RenderPassDescDependencies<'a, R>fn dependency_descs(&self) -> RenderPassDescDependencies<Self>
[src]
Returns an iterator to the list of dependencies.
fn is_compatible_with<T>(&self, other: &T) -> bool where
T: RenderPassDesc + ?Sized,
[src]
T: RenderPassDesc + ?Sized,
Returns true if this render pass is compatible with another render pass. Read more
fn build_render_pass(
self,
device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>
[src]
self,
device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>
Builds a render pass from this description. Read more
fn num_color_attachments(&self, subpass: u32) -> Option<u32>
[src]
Returns the number of color attachments of a subpass. Returns None
if out of range.
fn num_samples(&self, subpass: u32) -> Option<u32>
[src]
Returns the number of samples of the attachments of a subpass. Returns None
if out of range or if the subpass has no attachment. TODO: return an enum instead? Read more
fn has_depth_stencil_attachment(&self, subpass: u32) -> Option<(bool, bool)>
[src]
Returns a tuple whose first element is true
if there's a depth attachment, and whose second element is true
if there's a stencil attachment. Returns None
if out of range. Read more
fn has_depth(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a depth attachment or a depth-stencil attachment.
fn has_writable_depth(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a depth attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal
. Read more
fn has_stencil(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a stencil attachment or a depth-stencil attachment.
fn has_writable_stencil(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a stencil attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal
. Read more
impl<Mv, L, Rp> PipelineLayoutAbstract for GraphicsPipeline<Mv, L, Rp> where
L: PipelineLayoutAbstract,
[src]
L: PipelineLayoutAbstract,
fn sys(&self) -> PipelineLayoutSys
[src]
fn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
impl<Mv, L, Rp> PipelineLayoutDesc for GraphicsPipeline<Mv, L, Rp> where
L: PipelineLayoutDesc,
[src]
L: PipelineLayoutDesc,
fn num_sets(&self) -> usize
[src]
fn num_bindings_in_set(&self, set: usize) -> Option<usize>
[src]
fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
[src]
fn num_push_constants_ranges(&self) -> usize
[src]
fn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
[src]
fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
If the PipelineLayoutDesc
implementation is able to provide an existing UnsafeDescriptorSetLayout
for a given set, it can do so by returning it here. Read more
fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>
[src]
Builds the union of this layout and another.
fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
Checks whether this description fulfills the device limits requirements.
fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
[src]
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
Turns the layout description into a PipelineLayout
object that can be used by Vulkan. Read more
impl<C, Mv, L, Rp> RenderPassDescClearValues<C> for GraphicsPipeline<Mv, L, Rp> where
Rp: RenderPassDescClearValues<C>,
[src]
Rp: RenderPassDescClearValues<C>,
fn convert_clear_values(
&self,
vals: C
) -> Box<dyn Iterator<Item = ClearValue> + 'static>
[src]
&self,
vals: C
) -> Box<dyn Iterator<Item = ClearValue> + 'static>
impl<Mv, L, Rp, I> VertexDefinition<I> for GraphicsPipeline<Mv, L, Rp> where
Mv: VertexDefinition<I>,
[src]
Mv: VertexDefinition<I>,
type BuffersIter = <Mv as VertexDefinition<I>>::BuffersIter
Iterator that returns the offset, the stride (in bytes) and input rate of each buffer.
type AttribsIter = <Mv as VertexDefinition<I>>::AttribsIter
Iterator that returns the attribute location, buffer id, and infos.
fn definition(
&self,
interface: &I
) -> Result<(<GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::BuffersIter, <GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::BuffersIter, <GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<Mv, L, Rp> VulkanObject for GraphicsPipeline<Mv, L, Rp>
[src]
impl<Mv, L, Rp> RenderPassAbstract for GraphicsPipeline<Mv, L, Rp> where
Rp: RenderPassAbstract,
[src]
Rp: RenderPassAbstract,
fn inner(&self) -> RenderPassSys
[src]
impl<Mv, L, Rp> GraphicsPipelineAbstract for GraphicsPipeline<Mv, L, Rp> where
L: PipelineLayoutAbstract,
Mv: VertexSource<Vec<Arc<dyn BufferAccess + 'static + Sync + Send>>>,
Rp: RenderPassAbstract,
[src]
L: PipelineLayoutAbstract,
Mv: VertexSource<Vec<Arc<dyn BufferAccess + 'static + Sync + Send>>>,
Rp: RenderPassAbstract,
fn inner(&self) -> GraphicsPipelineSys
[src]
fn subpass_index(&self) -> u32
[src]
fn has_dynamic_line_width(&self) -> bool
[src]
fn num_viewports(&self) -> u32
[src]
fn has_dynamic_viewports(&self) -> bool
[src]
fn has_dynamic_scissors(&self) -> bool
[src]
fn has_dynamic_depth_bounds(&self) -> bool
[src]
fn has_dynamic_stencil_compare_mask(&self) -> bool
[src]
fn has_dynamic_stencil_write_mask(&self) -> bool
[src]
fn has_dynamic_stencil_reference(&self) -> bool
[src]
fn subpass(self) -> Subpass<Self>
[src]
Returns the subpass this graphics pipeline is rendering to.
impl<Mv, L, Rp> Debug for GraphicsPipeline<Mv, L, Rp>
[src]
impl<Mv, L, Rp, S> VertexSource<S> for GraphicsPipeline<Mv, L, Rp> where
Mv: VertexSource<S>,
[src]
Mv: VertexSource<S>,
Auto Trait Implementations
impl<VertexDefinition, Layout, RenderP> Send for GraphicsPipeline<VertexDefinition, Layout, RenderP> where
Layout: Send,
RenderP: Send,
VertexDefinition: Send,
Layout: Send,
RenderP: Send,
VertexDefinition: Send,
impl<VertexDefinition, Layout, RenderP> Sync for GraphicsPipeline<VertexDefinition, Layout, RenderP> where
Layout: Sync,
RenderP: Sync,
VertexDefinition: Sync,
Layout: Sync,
RenderP: Sync,
VertexDefinition: Sync,
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> PipelineLayoutDesc for T where
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutDesc,
[src]
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutDesc,
fn num_sets(&self) -> usize
[src]
fn num_bindings_in_set(&self, set: usize) -> Option<usize>
[src]
fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
[src]
fn num_push_constants_ranges(&self) -> usize
[src]
fn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
[src]
fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
If the PipelineLayoutDesc
implementation is able to provide an existing UnsafeDescriptorSetLayout
for a given set, it can do so by returning it here. Read more
fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>
[src]
Builds the union of this layout and another.
fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
Checks whether this description fulfills the device limits requirements.
fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
[src]
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
Turns the layout description into a PipelineLayout
object that can be used by Vulkan. Read more
impl<T> DeviceOwned for T where
T: Deref,
<T as Deref>::Target: DeviceOwned,
[src]
T: Deref,
<T as Deref>::Target: DeviceOwned,
impl<T> Content for T
[src]
fn ref_from_ptr(ptr: *mut c_void, size: usize) -> Option<*mut T>
[src]
fn is_size_suitable(size: usize) -> bool
[src]
fn indiv_size() -> usize
[src]
impl<T> RenderPassAbstract for T where
T: SafeDeref,
<T as Deref>::Target: RenderPassAbstract,
[src]
T: SafeDeref,
<T as Deref>::Target: RenderPassAbstract,
fn inner(&self) -> RenderPassSys
[src]
impl<T> PipelineLayoutAbstract for T where
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutAbstract,
[src]
T: SafeDeref,
<T as Deref>::Target: PipelineLayoutAbstract,
fn sys(&self) -> PipelineLayoutSys
[src]
fn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
[src]
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
impl<T> GraphicsPipelineAbstract for T where
T: SafeDeref,
<T as Deref>::Target: GraphicsPipelineAbstract,
[src]
T: SafeDeref,
<T as Deref>::Target: GraphicsPipelineAbstract,
fn inner(&self) -> GraphicsPipelineSys
[src]
fn subpass_index(&self) -> u32
[src]
fn has_dynamic_line_width(&self) -> bool
[src]
fn num_viewports(&self) -> u32
[src]
fn has_dynamic_viewports(&self) -> bool
[src]
fn has_dynamic_scissors(&self) -> bool
[src]
fn has_dynamic_depth_bounds(&self) -> bool
[src]
fn has_dynamic_stencil_compare_mask(&self) -> bool
[src]
fn has_dynamic_stencil_write_mask(&self) -> bool
[src]
fn has_dynamic_stencil_reference(&self) -> bool
[src]
fn subpass(self) -> Subpass<Self>
[src]
Returns the subpass this graphics pipeline is rendering to.
impl<T, U> PipelineLayoutPushConstantsCompatible<U> for T where
T: PipelineLayoutDesc + ?Sized,
U: ?Sized,
[src]
T: PipelineLayoutDesc + ?Sized,
U: ?Sized,
fn is_compatible(&self, &U) -> bool
[src]
impl<L, T> VertexSource<L> for T where
T: SafeDeref,
<T as Deref>::Target: VertexSource<L>,
[src]
T: SafeDeref,
<T as Deref>::Target: VertexSource<L>,
fn decode(
&self,
list: L
) -> (Vec<Box<dyn BufferAccess + 'static + Sync + Send>>, usize, usize)
[src]
&self,
list: L
) -> (Vec<Box<dyn BufferAccess + 'static + Sync + Send>>, usize, usize)
impl<A, B> RenderPassCompatible<B> for A where
A: RenderPassDesc + ?Sized,
B: RenderPassDesc + ?Sized,
[src]
A: RenderPassDesc + ?Sized,
B: RenderPassDesc + ?Sized,
fn is_compatible_with(&self, other: &B) -> bool
[src]
impl<T, C> RenderPassDescClearValues<C> for T where
T: SafeDeref,
<T as Deref>::Target: RenderPassDescClearValues<C>,
[src]
T: SafeDeref,
<T as Deref>::Target: RenderPassDescClearValues<C>,
fn convert_clear_values(
&self,
vals: C
) -> Box<dyn Iterator<Item = ClearValue> + 'static>
[src]
&self,
vals: C
) -> Box<dyn Iterator<Item = ClearValue> + 'static>
impl<T, U> PipelineLayoutSuperset<U> for T where
T: PipelineLayoutDesc + ?Sized,
U: PipelineLayoutDesc + ?Sized,
[src]
T: PipelineLayoutDesc + ?Sized,
U: PipelineLayoutDesc + ?Sized,
fn ensure_superset_of(
&self,
other: &U
) -> Result<(), PipelineLayoutNotSupersetError>
[src]
&self,
other: &U
) -> Result<(), PipelineLayoutNotSupersetError>
impl<T, U> PipelineLayoutSetsCompatible<U> for T where
T: PipelineLayoutDesc + ?Sized,
U: DescriptorSetsCollection + ?Sized,
[src]
T: PipelineLayoutDesc + ?Sized,
U: DescriptorSetsCollection + ?Sized,
fn is_compatible(&self, sets: &U) -> bool
[src]
impl<T> RenderPassDesc for T where
T: SafeDeref,
<T as Deref>::Target: RenderPassDesc,
[src]
T: SafeDeref,
<T as Deref>::Target: RenderPassDesc,
fn num_attachments(&self) -> usize
[src]
fn attachment_desc(&self, num: usize) -> Option<AttachmentDescription>
[src]
fn num_subpasses(&self) -> usize
[src]
fn subpass_desc(&self, num: usize) -> Option<PassDescription>
[src]
fn num_dependencies(&self) -> usize
[src]
fn dependency_desc(&self, num: usize) -> Option<PassDependencyDescription>
[src]
ⓘImportant traits for RenderPassDescAttachments<'a, R>fn attachment_descs(&self) -> RenderPassDescAttachments<Self>
[src]
Returns an iterator to the list of attachments.
ⓘImportant traits for RenderPassDescSubpasses<'a, R>fn subpass_descs(&self) -> RenderPassDescSubpasses<Self>
[src]
Returns an iterator to the list of subpasses.
ⓘImportant traits for RenderPassDescDependencies<'a, R>fn dependency_descs(&self) -> RenderPassDescDependencies<Self>
[src]
Returns an iterator to the list of dependencies.
fn is_compatible_with<T>(&self, other: &T) -> bool where
T: RenderPassDesc + ?Sized,
[src]
T: RenderPassDesc + ?Sized,
Returns true if this render pass is compatible with another render pass. Read more
fn build_render_pass(
self,
device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>
[src]
self,
device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>
Builds a render pass from this description. Read more
fn num_color_attachments(&self, subpass: u32) -> Option<u32>
[src]
Returns the number of color attachments of a subpass. Returns None
if out of range.
fn num_samples(&self, subpass: u32) -> Option<u32>
[src]
Returns the number of samples of the attachments of a subpass. Returns None
if out of range or if the subpass has no attachment. TODO: return an enum instead? Read more
fn has_depth_stencil_attachment(&self, subpass: u32) -> Option<(bool, bool)>
[src]
Returns a tuple whose first element is true
if there's a depth attachment, and whose second element is true
if there's a stencil attachment. Returns None
if out of range. Read more
fn has_depth(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a depth attachment or a depth-stencil attachment.
fn has_writable_depth(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a depth attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal
. Read more
fn has_stencil(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a stencil attachment or a depth-stencil attachment.
fn has_writable_stencil(&self, subpass: u32) -> Option<bool>
[src]
Returns true if a subpass has a stencil attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal
. Read more
impl<A, B> RenderPassSubpassInterface<B> for A where
A: RenderPassDesc,
B: ShaderInterfaceDef + ?Sized,
[src]
A: RenderPassDesc,
B: ShaderInterfaceDef + ?Sized,
fn is_compatible_with(&self, subpass: u32, other: &B) -> bool
[src]
impl<I, T> VertexDefinition<I> for T where
T: SafeDeref,
<T as Deref>::Target: VertexDefinition<I>,
[src]
T: SafeDeref,
<T as Deref>::Target: VertexDefinition<I>,
type BuffersIter = <<T as Deref>::Target as VertexDefinition<I>>::BuffersIter
Iterator that returns the offset, the stride (in bytes) and input rate of each buffer.
type AttribsIter = <<T as Deref>::Target as VertexDefinition<I>>::AttribsIter
Iterator that returns the attribute location, buffer id, and infos.
fn definition(
&self,
interface: &I
) -> Result<(<T as VertexDefinition<I>>::BuffersIter, <T as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<T as VertexDefinition<I>>::BuffersIter, <T as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<T> SafeBorrow<T> for T
[src]
impl<T> Erased for T
impl<S> FromSample<S> for S
[src]
fn from_sample_(s: S) -> S
[src]
impl<T, U> ToSample<U> for T where
U: FromSample<T>,
[src]
U: FromSample<T>,
fn to_sample_(self) -> U
[src]
impl<S, T> Duplex<S> for T where
T: FromSample<S> + ToSample<S>,
[src]
T: FromSample<S> + ToSample<S>,
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
Sets value
as a parameter of self
.
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
Sets value
as a parameter of self
.