From 883e5bcaedbb70238fb65de804ba69ae4bead19c Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Sat, 15 Oct 2016 09:37:47 +0200 Subject: [PATCH] Describe push constants in PipelineLayoutDesc --- .../src/descriptor/pipeline_layout/empty.rs | 21 +++++++++++++++++++ .../src/descriptor/pipeline_layout/traits.rs | 5 ++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/vulkano/src/descriptor/pipeline_layout/empty.rs b/vulkano/src/descriptor/pipeline_layout/empty.rs index b78f261c5..29b341e57 100644 --- a/vulkano/src/descriptor/pipeline_layout/empty.rs +++ b/vulkano/src/descriptor/pipeline_layout/empty.rs @@ -12,6 +12,7 @@ use std::sync::Arc; use device::Device; use descriptor::descriptor::DescriptorDesc; +use descriptor::descriptor::ShaderStages; use descriptor::pipeline_layout::PipelineLayoutRef; use descriptor::pipeline_layout::PipelineLayoutDesc; use descriptor::pipeline_layout::PipelineLayout; @@ -57,6 +58,16 @@ unsafe impl PipelineLayoutDesc for EmptyPipeline { fn descriptor(&self, set: usize, binding: usize) -> Option { None } + + #[inline] + fn num_push_constants_ranges(&self) -> usize { + 0 + } + + #[inline] + fn push_constant_range(&self, num: usize) -> Option<(usize, usize, ShaderStages)> { + None + } } /// Description of an empty pipeline layout. @@ -78,6 +89,16 @@ unsafe impl PipelineLayoutDesc for EmptyPipelineDesc { fn descriptor(&self, set: usize, binding: usize) -> Option { None } + + #[inline] + fn num_push_constants_ranges(&self) -> usize { + 0 + } + + #[inline] + fn push_constant_range(&self, num: usize) -> Option<(usize, usize, ShaderStages)> { + None + } } diff --git a/vulkano/src/descriptor/pipeline_layout/traits.rs b/vulkano/src/descriptor/pipeline_layout/traits.rs index 0e36eb7d0..8d944be88 100644 --- a/vulkano/src/descriptor/pipeline_layout/traits.rs +++ b/vulkano/src/descriptor/pipeline_layout/traits.rs @@ -8,6 +8,7 @@ // according to those terms. use descriptor::descriptor::DescriptorDesc; +use descriptor::descriptor::ShaderStages; use descriptor::descriptor_set::DescriptorSetsCollection; use descriptor::pipeline_layout::PipelineLayout; @@ -39,7 +40,9 @@ pub unsafe trait PipelineLayoutDesc { fn descriptor(&self, set: usize, binding: usize) -> Option; - // TODO: describe push constants + fn num_push_constants_ranges(&self) -> usize; + + fn push_constant_range(&self, num: usize) -> Option<(usize, usize, ShaderStages)>; } /// Traits that allow determining whether a pipeline layout is a superset of another one.