Struct vulkano::command_buffer::sys::UnsafeCommandBufferBuilder [−][src]
Command buffer being built.
You can add commands to an UnsafeCommandBufferBuilder
by using the AddCommand
trait.
The AddCommand<&Cmd>
trait is implemented on the UnsafeCommandBufferBuilder
for any Cmd
that is a raw Vulkan command.
When you are finished adding commands, you can use the CommandBufferBuild
trait to turn this
builder into an UnsafeCommandBuffer
.
Implementations
impl UnsafeCommandBufferBuilder
[src]
pub unsafe fn new<R, F>(
pool_alloc: &UnsafeCommandPoolAlloc,
kind: Kind<R, F>,
flags: Flags
) -> Result<UnsafeCommandBufferBuilder, OomError> where
R: RenderPassAbstract,
F: FramebufferAbstract,
[src]
pool_alloc: &UnsafeCommandPoolAlloc,
kind: Kind<R, F>,
flags: Flags
) -> Result<UnsafeCommandBufferBuilder, OomError> where
R: RenderPassAbstract,
F: FramebufferAbstract,
Creates a new builder, for recording commands.
Safety
pool_alloc
must outlive the returned builder and its created command buffer.kind
must match howpool_alloc
was created.- All submitted commands must be valid and follow the requirements of the Vulkan specification.
- Any resources used by submitted commands must outlive the returned builder and its created command buffer. They must be protected against data races through manual synchronization.
Note: Some checks are still made with
debug_assert!
. Do not expect to be able to submit invalid commands.
pub fn build(self) -> Result<UnsafeCommandBuffer, OomError>
[src]
Turns the builder into an actual command buffer.
pub unsafe fn begin_query(&mut self, query: UnsafeQuery<'_>, precise: bool)
[src]
Calls vkCmdBeginQuery
on the builder.
pub unsafe fn begin_render_pass<F: ?Sized, I>(
&mut self,
framebuffer: &F,
subpass_contents: SubpassContents,
clear_values: I
) where
F: FramebufferAbstract,
I: Iterator<Item = ClearValue>,
[src]
&mut self,
framebuffer: &F,
subpass_contents: SubpassContents,
clear_values: I
) where
F: FramebufferAbstract,
I: Iterator<Item = ClearValue>,
Calls vkCmdBeginRenderPass
on the builder.
pub unsafe fn bind_descriptor_sets<'s, Pl: ?Sized, S, I>(
&mut self,
graphics: bool,
pipeline_layout: &Pl,
first_binding: u32,
sets: S,
dynamic_offsets: I
) where
Pl: PipelineLayoutAbstract,
S: Iterator<Item = &'s UnsafeDescriptorSet>,
I: Iterator<Item = u32>,
[src]
&mut self,
graphics: bool,
pipeline_layout: &Pl,
first_binding: u32,
sets: S,
dynamic_offsets: I
) where
Pl: PipelineLayoutAbstract,
S: Iterator<Item = &'s UnsafeDescriptorSet>,
I: Iterator<Item = u32>,
Calls vkCmdBindDescriptorSets
on the builder.
Does nothing if the list of descriptor sets is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn bind_index_buffer<B: ?Sized>(
&mut self,
buffer: &B,
index_ty: IndexType
) where
B: BufferAccess,
[src]
&mut self,
buffer: &B,
index_ty: IndexType
) where
B: BufferAccess,
Calls vkCmdBindIndexBuffer
on the builder.
pub unsafe fn bind_pipeline_compute<Cp: ?Sized>(&mut self, pipeline: &Cp) where
Cp: ComputePipelineAbstract,
[src]
Cp: ComputePipelineAbstract,
Calls vkCmdBindPipeline
on the builder with a compute pipeline.
pub unsafe fn bind_pipeline_graphics<Gp: ?Sized>(&mut self, pipeline: &Gp) where
Gp: GraphicsPipelineAbstract,
[src]
Gp: GraphicsPipelineAbstract,
Calls vkCmdBindPipeline
on the builder with a graphics pipeline.
pub unsafe fn bind_vertex_buffers(
&mut self,
first_binding: u32,
params: UnsafeCommandBufferBuilderBindVertexBuffer
)
[src]
&mut self,
first_binding: u32,
params: UnsafeCommandBufferBuilderBindVertexBuffer
)
Calls vkCmdBindVertexBuffers
on the builder.
Does nothing if the list of buffers is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn copy_image<S: ?Sized, D: ?Sized, R>(
&mut self,
source: &S,
source_layout: ImageLayout,
destination: &D,
destination_layout: ImageLayout,
regions: R
) where
S: ImageAccess,
D: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderImageCopy>,
[src]
&mut self,
source: &S,
source_layout: ImageLayout,
destination: &D,
destination_layout: ImageLayout,
regions: R
) where
S: ImageAccess,
D: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderImageCopy>,
Calls vkCmdCopyImage
on the builder.
Does nothing if the list of regions is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn blit_image<S: ?Sized, D: ?Sized, R>(
&mut self,
source: &S,
source_layout: ImageLayout,
destination: &D,
destination_layout: ImageLayout,
regions: R,
filter: Filter
) where
S: ImageAccess,
D: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderImageBlit>,
[src]
&mut self,
source: &S,
source_layout: ImageLayout,
destination: &D,
destination_layout: ImageLayout,
regions: R,
filter: Filter
) where
S: ImageAccess,
D: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderImageBlit>,
Calls vkCmdBlitImage
on the builder.
Does nothing if the list of regions is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn clear_color_image<I: ?Sized, R>(
&mut self,
image: &I,
layout: ImageLayout,
color: ClearValue,
regions: R
) where
I: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderColorImageClear>,
[src]
&mut self,
image: &I,
layout: ImageLayout,
color: ClearValue,
regions: R
) where
I: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderColorImageClear>,
Calls vkCmdClearColorImage
on the builder.
Does nothing if the list of regions is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn copy_buffer<S: ?Sized, D: ?Sized, R>(
&mut self,
source: &S,
destination: &D,
regions: R
) where
S: BufferAccess,
D: BufferAccess,
R: Iterator<Item = (usize, usize, usize)>,
[src]
&mut self,
source: &S,
destination: &D,
regions: R
) where
S: BufferAccess,
D: BufferAccess,
R: Iterator<Item = (usize, usize, usize)>,
Calls vkCmdCopyBuffer
on the builder.
Does nothing if the list of regions is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn copy_buffer_to_image<S: ?Sized, D: ?Sized, R>(
&mut self,
source: &S,
destination: &D,
destination_layout: ImageLayout,
regions: R
) where
S: BufferAccess,
D: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderBufferImageCopy>,
[src]
&mut self,
source: &S,
destination: &D,
destination_layout: ImageLayout,
regions: R
) where
S: BufferAccess,
D: ImageAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderBufferImageCopy>,
Calls vkCmdCopyBufferToImage
on the builder.
Does nothing if the list of regions is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn copy_image_to_buffer<S: ?Sized, D: ?Sized, R>(
&mut self,
source: &S,
source_layout: ImageLayout,
destination: &D,
regions: R
) where
S: ImageAccess,
D: BufferAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderBufferImageCopy>,
[src]
&mut self,
source: &S,
source_layout: ImageLayout,
destination: &D,
regions: R
) where
S: ImageAccess,
D: BufferAccess,
R: Iterator<Item = UnsafeCommandBufferBuilderBufferImageCopy>,
Calls vkCmdCopyImageToBuffer
on the builder.
Does nothing if the list of regions is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn copy_query_pool_results(
&mut self,
queries: UnsafeQueriesRange<'_>,
destination: &dyn BufferAccess,
stride: usize
)
[src]
&mut self,
queries: UnsafeQueriesRange<'_>,
destination: &dyn BufferAccess,
stride: usize
)
Calls vkCmdCopyQueryPoolResults
on the builder.
pub unsafe fn dispatch(&mut self, group_counts: [u32; 3])
[src]
Calls vkCmdDispatch
on the builder.
pub unsafe fn dispatch_indirect<B: ?Sized>(&mut self, buffer: &B) where
B: BufferAccess,
[src]
B: BufferAccess,
Calls vkCmdDispatchIndirect
on the builder.
pub unsafe fn draw(
&mut self,
vertex_count: u32,
instance_count: u32,
first_vertex: u32,
first_instance: u32
)
[src]
&mut self,
vertex_count: u32,
instance_count: u32,
first_vertex: u32,
first_instance: u32
)
Calls vkCmdDraw
on the builder.
pub unsafe fn draw_indexed(
&mut self,
index_count: u32,
instance_count: u32,
first_index: u32,
vertex_offset: i32,
first_instance: u32
)
[src]
&mut self,
index_count: u32,
instance_count: u32,
first_index: u32,
vertex_offset: i32,
first_instance: u32
)
Calls vkCmdDrawIndexed
on the builder.
pub unsafe fn draw_indirect<B: ?Sized>(
&mut self,
buffer: &B,
draw_count: u32,
stride: u32
) where
B: BufferAccess,
[src]
&mut self,
buffer: &B,
draw_count: u32,
stride: u32
) where
B: BufferAccess,
Calls vkCmdDrawIndirect
on the builder.
pub unsafe fn draw_indexed_indirect<B: ?Sized>(
&mut self,
buffer: &B,
draw_count: u32,
stride: u32
) where
B: BufferAccess,
[src]
&mut self,
buffer: &B,
draw_count: u32,
stride: u32
) where
B: BufferAccess,
Calls vkCmdDrawIndexedIndirect
on the builder.
pub unsafe fn end_query(&mut self, query: UnsafeQuery<'_>)
[src]
Calls vkCmdEndQuery
on the builder.
pub unsafe fn end_render_pass(&mut self)
[src]
Calls vkCmdEndRenderPass
on the builder.
pub unsafe fn execute_commands(
&mut self,
cbs: UnsafeCommandBufferBuilderExecuteCommands
)
[src]
&mut self,
cbs: UnsafeCommandBufferBuilderExecuteCommands
)
Calls vkCmdExecuteCommands
on the builder.
Does nothing if the list of command buffers is empty, as it would be a no-op and isn’t a valid usage of the command anyway.
pub unsafe fn fill_buffer<B: ?Sized>(&mut self, buffer: &B, data: u32) where
B: BufferAccess,
[src]
B: BufferAccess,
Calls vkCmdFillBuffer
on the builder.
pub unsafe fn next_subpass(&mut self, subpass_contents: SubpassContents)
[src]
Calls vkCmdNextSubpass
on the builder.
pub unsafe fn pipeline_barrier(
&mut self,
command: &UnsafeCommandBufferBuilderPipelineBarrier
)
[src]
&mut self,
command: &UnsafeCommandBufferBuilderPipelineBarrier
)
pub unsafe fn push_constants<Pl: ?Sized, D>(
&mut self,
pipeline_layout: &Pl,
stages: ShaderStages,
offset: u32,
size: u32,
data: &D
) where
Pl: PipelineLayoutAbstract,
D: ?Sized,
[src]
&mut self,
pipeline_layout: &Pl,
stages: ShaderStages,
offset: u32,
size: u32,
data: &D
) where
Pl: PipelineLayoutAbstract,
D: ?Sized,
Calls vkCmdPushConstants
on the builder.
pub unsafe fn reset_event(&mut self, event: &Event, stages: PipelineStages)
[src]
Calls vkCmdResetEvent
on the builder.
pub unsafe fn reset_query_pool(&mut self, queries: UnsafeQueriesRange<'_>)
[src]
Calls vkCmdResetQueryPool
on the builder.
pub unsafe fn set_blend_constants(&mut self, constants: [f32; 4])
[src]
Calls vkCmdSetBlendConstants
on the builder.
pub unsafe fn set_depth_bias(
&mut self,
constant_factor: f32,
clamp: f32,
slope_factor: f32
)
[src]
&mut self,
constant_factor: f32,
clamp: f32,
slope_factor: f32
)
Calls vkCmdSetDepthBias
on the builder.
pub unsafe fn set_depth_bounds(&mut self, min: f32, max: f32)
[src]
Calls vkCmdSetDepthBounds
on the builder.
pub unsafe fn set_event(&mut self, event: &Event, stages: PipelineStages)
[src]
Calls vkCmdSetEvent
on the builder.
pub unsafe fn set_line_width(&mut self, line_width: f32)
[src]
Calls vkCmdSetLineWidth
on the builder.
pub unsafe fn set_stencil_compare_mask(
&mut self,
face_mask: StencilFaceFlags,
compare_mask: u32
)
[src]
&mut self,
face_mask: StencilFaceFlags,
compare_mask: u32
)
Calls vkCmdSetStencilCompareMask
on the builder.
pub unsafe fn set_stencil_reference(
&mut self,
face_mask: StencilFaceFlags,
reference: u32
)
[src]
&mut self,
face_mask: StencilFaceFlags,
reference: u32
)
Calls vkCmdSetStencilReference
on the builder.
pub unsafe fn set_stencil_write_mask(
&mut self,
face_mask: StencilFaceFlags,
write_mask: u32
)
[src]
&mut self,
face_mask: StencilFaceFlags,
write_mask: u32
)
Calls vkCmdSetStencilWriteMask
on the builder.
pub unsafe fn set_scissor<I>(&mut self, first_scissor: u32, scissors: I) where
I: Iterator<Item = Scissor>,
[src]
I: Iterator<Item = Scissor>,
Calls vkCmdSetScissor
on the builder.
If the list is empty then the command is automatically ignored.
pub unsafe fn set_viewport<I>(&mut self, first_viewport: u32, viewports: I) where
I: Iterator<Item = Viewport>,
[src]
I: Iterator<Item = Viewport>,
Calls vkCmdSetViewport
on the builder.
If the list is empty then the command is automatically ignored.
pub unsafe fn update_buffer<B: ?Sized, D>(&mut self, buffer: &B, data: &D) where
B: BufferAccess,
D: ?Sized,
[src]
B: BufferAccess,
D: ?Sized,
Calls vkCmdUpdateBuffer
on the builder.
pub unsafe fn write_timestamp(
&mut self,
query: UnsafeQuery<'_>,
stages: PipelineStages
)
[src]
&mut self,
query: UnsafeQuery<'_>,
stages: PipelineStages
)
Calls vkCmdWriteTimestamp
on the builder.
pub unsafe fn debug_marker_begin(&mut self, name: &CStr, color: [f32; 4])
[src]
Calls vkCmdBeginDebugUtilsLabelEXT
on the builder.
Safety
The command pool that this command buffer was allocated from must support graphics or compute operations
pub unsafe fn debug_marker_end(&mut self)
[src]
Calls vkCmdEndDebugUtilsLabelEXT
on the builder.
Safety
There must be an outstanding vkCmdBeginDebugUtilsLabelEXT
command prior to the
vkQueueEndDebugUtilsLabelEXT
on the queue tha CommandBuffer
is submitted to.
pub unsafe fn debug_marker_insert(&mut self, name: &CStr, color: [f32; 4])
[src]
Calls vkCmdInsertDebugUtilsLabelEXT
on the builder.
Safety
The command pool that this command buffer was allocated from must support graphics or compute operations
Trait Implementations
impl Debug for UnsafeCommandBufferBuilder
[src]
impl DeviceOwned for UnsafeCommandBufferBuilder
[src]
impl VulkanObject for UnsafeCommandBufferBuilder
[src]
type Object = CommandBuffer
The type of the object.
const TYPE: ObjectType
[src]
fn internal_object(&self) -> CommandBuffer
[src]
Auto Trait Implementations
impl RefUnwindSafe for UnsafeCommandBufferBuilder
impl Send for UnsafeCommandBufferBuilder
impl Sync for UnsafeCommandBufferBuilder
impl Unpin for UnsafeCommandBufferBuilder
impl UnwindSafe for UnsafeCommandBufferBuilder
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Content for T
[src]
pub fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>
[src]
pub fn is_size_suitable(usize) -> bool
[src]
pub fn indiv_size() -> usize
[src]
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.
pub 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>,