diff options
Diffstat (limited to 'src/command_buffer/submit/mod.rs')
-rw-r--r-- | src/command_buffer/submit/mod.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/command_buffer/submit/mod.rs b/src/command_buffer/submit/mod.rs new file mode 100644 index 0000000..53c0d4b --- /dev/null +++ b/src/command_buffer/submit/mod.rs @@ -0,0 +1,52 @@ +// Copyright (c) 2016 The vulkano developers +// Licensed under the Apache License, Version 2.0 +// <LICENSE-APACHE or +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. + +//! Low-level builders that allow submitting an operation to a queue. +//! +//! In order to submit an operation to the GPU, you must use one of the builder structs of this +//! module. These structs are low-level and unsafe, and are mostly used to implement other parts +//! of vulkano, so you are encouraged to not use them directly. + +pub use self::bind_sparse::SubmitBindSparseBatchBuilder; +pub use self::bind_sparse::SubmitBindSparseBufferBindBuilder; +pub use self::bind_sparse::SubmitBindSparseBuilder; +pub use self::bind_sparse::SubmitBindSparseError; +pub use self::bind_sparse::SubmitBindSparseImageBindBuilder; +pub use self::bind_sparse::SubmitBindSparseImageOpaqueBindBuilder; +pub use self::queue_present::SubmitPresentBuilder; +pub use self::queue_present::SubmitPresentError; +pub use self::queue_submit::SubmitCommandBufferBuilder; +pub use self::queue_submit::SubmitCommandBufferError; +pub use self::semaphores_wait::SubmitSemaphoresWaitBuilder; + +mod bind_sparse; +mod queue_present; +mod queue_submit; +mod semaphores_wait; + +/// Contains all the possible submission builders. +#[derive(Debug)] +pub enum SubmitAnyBuilder<'a> { + Empty, + SemaphoresWait(SubmitSemaphoresWaitBuilder<'a>), + CommandBuffer(SubmitCommandBufferBuilder<'a>), + QueuePresent(SubmitPresentBuilder<'a>), + BindSparse(SubmitBindSparseBuilder<'a>), +} + +impl<'a> SubmitAnyBuilder<'a> { + /// Returns true if equal to `SubmitAnyBuilder::Empty`. + #[inline] + pub fn is_empty(&self) -> bool { + match self { + &SubmitAnyBuilder::Empty => true, + _ => false, + } + } +} |