diff options
Diffstat (limited to 'src/command_buffer/validity/push_constants.rs')
-rw-r--r-- | src/command_buffer/validity/push_constants.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/command_buffer/validity/push_constants.rs b/src/command_buffer/validity/push_constants.rs new file mode 100644 index 0000000..65b749e --- /dev/null +++ b/src/command_buffer/validity/push_constants.rs @@ -0,0 +1,52 @@ +// Copyright (c) 2017 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. + +use crate::pipeline::layout::PipelineLayout; +use std::error; +use std::fmt; + +/// Checks whether push constants are compatible with the pipeline. +pub fn check_push_constants_validity<Pc>( + pipeline_layout: &PipelineLayout, + push_constants: &Pc, +) -> Result<(), CheckPushConstantsValidityError> +where + Pc: ?Sized, +{ + // TODO + if !true { + return Err(CheckPushConstantsValidityError::IncompatiblePushConstants); + } + + Ok(()) +} + +/// Error that can happen when checking push constants validity. +#[derive(Debug, Copy, Clone)] +pub enum CheckPushConstantsValidityError { + /// The push constants are incompatible with the pipeline layout. + IncompatiblePushConstants, +} + +impl error::Error for CheckPushConstantsValidityError {} + +impl fmt::Display for CheckPushConstantsValidityError { + #[inline] + fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error> { + write!( + fmt, + "{}", + match *self { + CheckPushConstantsValidityError::IncompatiblePushConstants => { + "the push constants are incompatible with the pipeline layout" + } + } + ) + } +} |