Struct vulkano::pipeline::GraphicsPipeline
source · pub struct GraphicsPipeline<VertexDefinition, Layout, RenderP> { /* private fields */ }
Expand description
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.
Implementations
sourceimpl GraphicsPipeline<(), (), ()>
impl GraphicsPipeline<(), (), ()>
sourcepub fn start<'a>(
) -> GraphicsPipelineBuilder<BufferlessDefinition, EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), ()>
pub fn start<'a>(
) -> 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.
sourceimpl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>
sourceimpl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutAbstract,
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutAbstract,
sourceimpl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassDesc,
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassDesc,
sourceimpl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>
impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>
sourcepub fn render_pass(&self) -> &Rp
pub fn render_pass(&self) -> &Rp
Returns the render pass used in the constructor.
sourcepub fn has_dynamic_line_width(&self) -> bool
pub fn has_dynamic_line_width(&self) -> bool
Returns true if the line width used by this pipeline is dynamic.
sourcepub fn num_viewports(&self) -> u32
pub fn num_viewports(&self) -> u32
Returns the number of viewports and scissors of this pipeline.
sourcepub fn has_dynamic_viewports(&self) -> bool
pub fn has_dynamic_viewports(&self) -> bool
Returns true if the viewports used by this pipeline are dynamic.
sourcepub fn has_dynamic_scissors(&self) -> bool
pub fn has_dynamic_scissors(&self) -> bool
Returns true if the scissors used by this pipeline are dynamic.
sourcepub fn has_dynamic_depth_bounds(&self) -> bool
pub fn has_dynamic_depth_bounds(&self) -> bool
Returns true if the depth bounds used by this pipeline are dynamic.
sourcepub fn has_dynamic_stencil_compare_mask(&self) -> bool
pub fn has_dynamic_stencil_compare_mask(&self) -> bool
Returns true if the stencil compare masks used by this pipeline are dynamic.
sourcepub fn has_dynamic_stencil_write_mask(&self) -> bool
pub fn has_dynamic_stencil_write_mask(&self) -> bool
Returns true if the stencil write masks used by this pipeline are dynamic.
sourcepub fn has_dynamic_stencil_reference(&self) -> bool
pub fn has_dynamic_stencil_reference(&self) -> bool
Returns true if the stencil references used by this pipeline are dynamic.
Trait Implementations
sourceimpl<Mv, L, Rp> Debug for GraphicsPipeline<Mv, L, Rp>
impl<Mv, L, Rp> Debug for GraphicsPipeline<Mv, L, Rp>
sourceimpl<Mv, L, Rp> DeviceOwned for GraphicsPipeline<Mv, L, Rp>
impl<Mv, L, Rp> DeviceOwned for GraphicsPipeline<Mv, L, Rp>
sourceimpl<Mv, L, Rp> GraphicsPipelineAbstract for GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutAbstract,
Rp: RenderPassAbstract,
Mv: VertexSource<Vec<Arc<dyn BufferAccess + Send + Sync>>>,
impl<Mv, L, Rp> GraphicsPipelineAbstract for GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutAbstract,
Rp: RenderPassAbstract,
Mv: VertexSource<Vec<Arc<dyn BufferAccess + Send + Sync>>>,
sourcefn inner(&self) -> GraphicsPipelineSys<'_>
fn inner(&self) -> GraphicsPipelineSys<'_>
sourcefn subpass_index(&self) -> u32
fn subpass_index(&self) -> u32
sourcefn has_dynamic_line_width(&self) -> bool
fn has_dynamic_line_width(&self) -> bool
sourcefn num_viewports(&self) -> u32
fn num_viewports(&self) -> u32
sourcefn has_dynamic_viewports(&self) -> bool
fn has_dynamic_viewports(&self) -> bool
sourcefn has_dynamic_scissors(&self) -> bool
fn has_dynamic_scissors(&self) -> bool
sourcefn has_dynamic_depth_bounds(&self) -> bool
fn has_dynamic_depth_bounds(&self) -> bool
sourcefn has_dynamic_stencil_compare_mask(&self) -> bool
fn has_dynamic_stencil_compare_mask(&self) -> bool
sourcefn has_dynamic_stencil_write_mask(&self) -> bool
fn has_dynamic_stencil_write_mask(&self) -> bool
sourcefn has_dynamic_stencil_reference(&self) -> bool
fn has_dynamic_stencil_reference(&self) -> bool
sourceimpl<Mv, L, Rp> PipelineLayoutAbstract for GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutAbstract,
impl<Mv, L, Rp> PipelineLayoutAbstract for GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutAbstract,
sourcefn sys(&self) -> PipelineLayoutSys<'_>
fn sys(&self) -> PipelineLayoutSys<'_>
sourcefn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
fn descriptor_set_layout(
&self,
index: usize
) -> Option<&Arc<UnsafeDescriptorSetLayout>>
UnsafeDescriptorSetLayout
object of the specified set index. Read moresourceimpl<Mv, L, Rp> PipelineLayoutDesc for GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutDesc,
impl<Mv, L, Rp> PipelineLayoutDesc for GraphicsPipeline<Mv, L, Rp>where
L: PipelineLayoutDesc,
sourcefn num_sets(&self) -> usize
fn num_sets(&self) -> usize
sourcefn num_bindings_in_set(&self, set: usize) -> Option<usize>
fn num_bindings_in_set(&self, set: usize) -> Option<usize>
sourcefn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
fn descriptor(&self, set: usize, binding: usize) -> Option<DescriptorDesc>
sourcefn num_push_constants_ranges(&self) -> usize
fn num_push_constants_ranges(&self) -> usize
sourcefn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
fn push_constants_range(&self, num: usize) -> Option<PipelineLayoutDescPcRange>
sourcefn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
fn provided_set_layout(
&self,
_set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
PipelineLayoutDesc
implementation is able to provide an existing
UnsafeDescriptorSetLayout
for a given set, it can do so by returning it here. Read moresourcefn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>where
Self: Sized,
fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>where
Self: Sized,
sourcefn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
fn check_against_limits(
&self,
device: &Device
) -> Result<(), PipelineLayoutLimitsError>
sourcefn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>where
Self: Sized,
fn build(
self,
device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>where
Self: Sized,
PipelineLayout
object that can be used by Vulkan. Read moresourceimpl<Mv, L, Rp> RenderPassAbstract for GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassAbstract,
impl<Mv, L, Rp> RenderPassAbstract for GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassAbstract,
sourcefn inner(&self) -> RenderPassSys<'_>
fn inner(&self) -> RenderPassSys<'_>
sourceimpl<Mv, L, Rp> RenderPassDesc for GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassDesc,
impl<Mv, L, Rp> RenderPassDesc for GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassDesc,
sourcefn num_attachments(&self) -> usize
fn num_attachments(&self) -> usize
sourcefn attachment_desc(&self, num: usize) -> Option<AttachmentDescription>
fn attachment_desc(&self, num: usize) -> Option<AttachmentDescription>
sourcefn num_subpasses(&self) -> usize
fn num_subpasses(&self) -> usize
sourcefn subpass_desc(&self, num: usize) -> Option<PassDescription>
fn subpass_desc(&self, num: usize) -> Option<PassDescription>
sourcefn num_dependencies(&self) -> usize
fn num_dependencies(&self) -> usize
sourcefn dependency_desc(&self, num: usize) -> Option<PassDependencyDescription>
fn dependency_desc(&self, num: usize) -> Option<PassDependencyDescription>
sourcefn attachment_descs(&self) -> RenderPassDescAttachments<'_, Self> ⓘwhere
Self: Sized,
fn attachment_descs(&self) -> RenderPassDescAttachments<'_, Self> ⓘwhere
Self: Sized,
sourcefn subpass_descs(&self) -> RenderPassDescSubpasses<'_, Self> ⓘwhere
Self: Sized,
fn subpass_descs(&self) -> RenderPassDescSubpasses<'_, Self> ⓘwhere
Self: Sized,
sourcefn dependency_descs(&self) -> RenderPassDescDependencies<'_, Self> ⓘwhere
Self: Sized,
fn dependency_descs(&self) -> RenderPassDescDependencies<'_, Self> ⓘwhere
Self: Sized,
sourcefn is_compatible_with<T>(&self, other: &T) -> boolwhere
Self: Sized,
T: ?Sized + RenderPassDesc,
fn is_compatible_with<T>(&self, other: &T) -> boolwhere
Self: Sized,
T: ?Sized + RenderPassDesc,
sourcefn build_render_pass(
self,
device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>where
Self: Sized,
fn build_render_pass(
self,
device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>where
Self: Sized,
sourcefn num_color_attachments(&self, subpass: u32) -> Option<u32>
fn num_color_attachments(&self, subpass: u32) -> Option<u32>
None
if out of range.sourcefn num_samples(&self, subpass: u32) -> Option<u32>
fn num_samples(&self, subpass: u32) -> Option<u32>
None
if out of
range or if the subpass has no attachment. TODO: return an enum instead? Read moresourcefn has_depth_stencil_attachment(&self, subpass: u32) -> Option<(bool, bool)>
fn has_depth_stencil_attachment(&self, subpass: u32) -> Option<(bool, bool)>
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 moresourcefn has_depth(&self, subpass: u32) -> Option<bool>
fn has_depth(&self, subpass: u32) -> Option<bool>
sourcefn has_writable_depth(&self, subpass: u32) -> Option<bool>
fn has_writable_depth(&self, subpass: u32) -> Option<bool>
DepthStencilReadOnlyOptimal
. Read moresourcefn has_stencil(&self, subpass: u32) -> Option<bool>
fn has_stencil(&self, subpass: u32) -> Option<bool>
sourceimpl<C, Mv, L, Rp> RenderPassDescClearValues<C> for GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassDescClearValues<C>,
impl<C, Mv, L, Rp> RenderPassDescClearValues<C> for GraphicsPipeline<Mv, L, Rp>where
Rp: RenderPassDescClearValues<C>,
sourcefn convert_clear_values(&self, vals: C) -> Box<dyn Iterator<Item = ClearValue>>
fn convert_clear_values(&self, vals: C) -> Box<dyn Iterator<Item = ClearValue>>
C
into a list of clear values where each element corresponds
to an attachment. The size of the returned iterator must be the same as the number of
attachments. Read moresourceimpl<Mv, L, Rp, I> VertexDefinition<I> for GraphicsPipeline<Mv, L, Rp>where
Mv: VertexDefinition<I>,
impl<Mv, L, Rp, I> VertexDefinition<I> for GraphicsPipeline<Mv, L, Rp>where
Mv: VertexDefinition<I>,
type BuffersIter = <Mv as VertexDefinition<I>>::BuffersIter
type BuffersIter = <Mv as VertexDefinition<I>>::BuffersIter
type AttribsIter = <Mv as VertexDefinition<I>>::AttribsIter
type AttribsIter = <Mv as VertexDefinition<I>>::AttribsIter
sourcefn definition(
&self,
interface: &I
) -> Result<(Self::BuffersIter, Self::AttribsIter), IncompatibleVertexDefinitionError>
fn definition(
&self,
interface: &I
) -> Result<(Self::BuffersIter, Self::AttribsIter), IncompatibleVertexDefinitionError>
sourceimpl<Mv, L, Rp, S> VertexSource<S> for GraphicsPipeline<Mv, L, Rp>where
Mv: VertexSource<S>,
impl<Mv, L, Rp, S> VertexSource<S> for GraphicsPipeline<Mv, L, Rp>where
Mv: VertexSource<S>,
sourceimpl<Mv, L, Rp> VulkanObject for GraphicsPipeline<Mv, L, Rp>
impl<Mv, L, Rp> VulkanObject for GraphicsPipeline<Mv, L, Rp>
sourceconst TYPE: DebugReportObjectTypeEXT = 19u32
const TYPE: DebugReportObjectTypeEXT = 19u32
DebugReportObjectTypeEXT
of the internal Vulkan handle.