[][src]Struct rendy::command::Encoder

pub struct Encoder<'a, B, C, L> where
    B: Backend,
    <B as Backend>::CommandBuffer: 'a, 
{ /* fields omitted */ }

Trait to encode commands outside render pass.

Methods

impl<'a, B, C> Encoder<'a, B, C, PrimaryLevel> where
    B: Backend
[src]

pub fn begin_render_pass_inline(
    &mut self,
    render_pass: &<B as Backend>::RenderPass,
    framebuffer: &<B as Backend>::Framebuffer,
    render_area: Rect,
    clear_values: &[ClearValueRaw]
) -> RenderPassInlineEncoder<B> where
    C: Supports<Graphics>, 
[src]

Beging recording render pass inline.

pub fn begin_render_pass_secondary(
    &mut self,
    render_pass: &<B as Backend>::RenderPass,
    framebuffer: &<B as Backend>::Framebuffer,
    render_area: Rect,
    clear_values: &[ClearValueRaw]
) -> RenderPassSecondaryEncoder<B> where
    C: Supports<Graphics>, 
[src]

Beging recording render pass secondary.

pub fn execute_commands<impl Submittable, impl IntoIterator>>(
    &mut self,
    submittables: impl IntoIterator>
) where
    impl IntoIterator>: IntoIterator<Item = impl Submittable>,
    impl Submittable: Submittable<B, SecondaryLevel, OutsideRenderPass>, 
[src]

Execute commands from secondary buffers.

impl<'a, B, C, L> Encoder<'a, B, C, L> where
    B: Backend
[src]

pub fn level(&self) -> L where
    L: Level
[src]

Get encoder level.

pub unsafe fn copy_buffer<impl IntoIterator>(
    &mut self,
    src: &<B as Backend>::Buffer,
    dst: &<B as Backend>::Buffer,
    regions: impl IntoIterator
) where
    C: Supports<Transfer>,
    impl IntoIterator: IntoIterator<Item = BufferCopy>, 
[src]

Copy buffer regions. src and dst can be the same buffer or alias in memory. But regions must not overlap. Otherwise resulting values are undefined.

Safety

The size of the copy region in any regions must not exceed the length of the corresponding buffer.

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyBuffer.html

pub unsafe fn copy_buffer_to_image<impl IntoIterator>(
    &mut self,
    src: &<B as Backend>::Buffer,
    dst: &<B as Backend>::Image,
    dst_layout: Layout,
    regions: impl IntoIterator
) where
    C: Supports<Transfer>,
    impl IntoIterator: IntoIterator<Item = BufferImageCopy>, 
[src]

Copy buffer region to image subresource range.

Safety

Same as copy_buffer()

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyBufferToImage.html

pub unsafe fn copy_image<impl IntoIterator>(
    &mut self,
    src: &<B as Backend>::Image,
    src_layout: Layout,
    dst: &<B as Backend>::Image,
    dst_layout: Layout,
    regions: impl IntoIterator
) where
    C: Supports<Transfer>,
    impl IntoIterator: IntoIterator<Item = ImageCopy>, 
[src]

Copy image regions.

Safety

Same as copy_buffer()

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyImage.html

pub unsafe fn blit_image<impl IntoIterator>(
    &mut self,
    src: &<B as Backend>::Image,
    src_layout: Layout,
    dst: &<B as Backend>::Image,
    dst_layout: Layout,
    filter: Filter,
    regions: impl IntoIterator
) where
    C: Supports<Graphics>,
    impl IntoIterator: IntoIterator<Item = ImageBlit>, 
[src]

Blit image regions, potentially using specified filter when resize is necessary.

Safety

Same as copy_buffer()

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBlitImage.html

pub unsafe fn dispatch(&mut self, x: u32, y: u32, z: u32) where
    C: Supports<Compute>, 
[src]

Dispatch compute.

Safety

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatch.html

pub unsafe fn dispatch_indirect(
    &mut self,
    buffer: &<B as Backend>::Buffer,
    offset: u64
) where
    C: Supports<Compute>, 
[src]

Dispatch indirect. Similar to dispatch except takes vertices and indices from buffer at specified offset. buffer must contain DispatchCommand at offset.

Safety

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatchIndirect.html

Methods from Deref<Target = EncoderCommon<'a, B, C>>

pub unsafe fn bind_index_buffer(
    &mut self,
    buffer: &'b <B as Backend>::Buffer,
    offset: u64,
    index_type: IndexType
) where
    C: Supports<Graphics>, 
[src]

Bind index buffer. Last bound index buffer is used in draw_indexed command.

Note that draw* commands available only inside renderpass.

Safety

offset must not be greater than the size of buffer. Sum of offset and starting address of the buffer must be multiple of index size indicated by index_type.

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindIndexBuffer.html

pub unsafe fn bind_vertex_buffers<'b, impl IntoIterator>(
    &mut self,
    first_binding: u32,
    buffers: impl IntoIterator
) where
    C: Supports<Graphics>,
    impl IntoIterator: IntoIterator<Item = (&'b <B as Backend>::Buffer, u64)>, 
[src]

Bind vertex buffers. Last bound vertex buffer is used in draw and draw_indexed commands.

Note that draw* commands available only inside renderpass.

Safety

first_binding + buffers.into_iter().count() must less than or equal to the maxVertexInputBindings device limit.

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindVertexBuffers.html

pub fn bind_graphics_pipeline(
    &mut self,
    pipeline: &<B as Backend>::GraphicsPipeline
) where
    C: Supports<Graphics>, 
[src]

Bind graphics pipeline.

Last bound vertex buffer is used in [draw], [draw_indexed], draw_indirect and draw_indexed_indirect commands.

pub unsafe fn bind_graphics_descriptor_sets<'b, impl IntoIterator, impl IntoIterator>(
    &mut self,
    layout: &<B as Backend>::PipelineLayout,
    first_set: u32,
    sets: impl IntoIterator,
    offsets: impl IntoIterator
) where
    C: Supports<Graphics>,
    impl IntoIterator: IntoIterator<Item = &'b <B as Backend>::DescriptorSet>,
    impl IntoIterator: IntoIterator<Item = u32>, 
[src]

Bind descriptor sets to graphics pipeline.

Safety

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindDescriptorSets.html

pub fn bind_compute_pipeline(
    &mut self,
    pipeline: &<B as Backend>::ComputePipeline
) where
    C: Supports<Compute>, 
[src]

Bind compute pipeline.

pub unsafe fn bind_compute_descriptor_sets<'b, impl IntoIterator, impl IntoIterator>(
    &mut self,
    layout: &<B as Backend>::PipelineLayout,
    first_set: u32,
    sets: impl IntoIterator,
    offsets: impl IntoIterator
) where
    C: Supports<Compute>,
    impl IntoIterator: IntoIterator<Item = &'b <B as Backend>::DescriptorSet>,
    impl IntoIterator: IntoIterator<Item = u32>, 
[src]

Bind descriptor sets to compute pipeline.

Safety

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindDescriptorSets.html

pub unsafe fn pipeline_barrier<'b, impl IntoIterator>>(
    &mut self,
    stages: Range<PipelineStage>,
    dependencies: Dependencies,
    barriers: impl IntoIterator>
) where
    impl IntoIterator>: IntoIterator<Item = Barrier<'b, B>>, 
[src]

Insert pipeline barrier.

Safety

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPipelineBarrier.html

pub unsafe fn push_constants(
    &mut self,
    layout: &<B as Backend>::PipelineLayout,
    stages: ShaderStageFlags,
    offset: u32,
    constants: &[u32]
)
[src]

Push graphics constants.

Safety

offset must be multiple of 4. constants.len() + offset, must be less than or equal to the maxPushConstantsSize device limit.

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPushConstants.html

pub unsafe fn set_scissors<'b, impl IntoIterator>(
    &mut self,
    first_scissor: u32,
    rects: impl IntoIterator
) where
    C: Supports<Graphics>,
    impl IntoIterator: IntoIterator<Item = &'b Rect>, 
[src]

Set scissors

Safety

first_scissor + rects.count() must be less than the maxViewports device limit.

See: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetScissor.html

pub fn reborrow<K>(&mut self) -> EncoderCommon<B, K> where
    C: Supports<K>, 
[src]

Reborrow encoder.

Trait Implementations

impl<'a, B, C, L> Debug for Encoder<'a, B, C, L> where
    B: Debug + Backend,
    C: Debug,
    L: Debug
[src]

impl<'a, B, C, L> DerefMut for Encoder<'a, B, C, L> where
    B: Backend
[src]

impl<'a, B, C, L> Deref for Encoder<'a, B, C, L> where
    B: Backend
[src]

type Target = EncoderCommon<'a, B, C>

The resulting type after dereferencing.

Auto Trait Implementations

impl<'a, B, C, L> Unpin for Encoder<'a, B, C, L> where
    C: Unpin,
    L: Unpin

impl<'a, B, C, L> Sync for Encoder<'a, B, C, L> where
    C: Sync,
    L: Sync,
    <B as Backend>::CommandBuffer: Sync

impl<'a, B, C, L> Send for Encoder<'a, B, C, L> where
    C: Send,
    L: Send,
    <B as Backend>::CommandBuffer: Send

impl<'a, B, C, L> !UnwindSafe for Encoder<'a, B, C, L>

impl<'a, B, C, L> RefUnwindSafe for Encoder<'a, B, C, L> where
    C: RefUnwindSafe,
    L: RefUnwindSafe,
    <B as Backend>::CommandBuffer: RefUnwindSafe

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Supports<T> for T[src]

impl<T> SetParameter for T[src]

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 
[src]

Sets value as a parameter of self.

impl<T> Erased for T[src]

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    D: AdaptFrom<S, Swp, Dwp, T>,
    Dwp: WhitePoint,
    Swp: WhitePoint,
    T: Component + Float
[src]

fn adapt_into(self) -> D[src]

Convert the source color to the destination color using the bradford method by default Read more