Struct vulkano::pipeline::shader::ShaderModule
[−]
[src]
pub struct ShaderModule { /* fields omitted */ }
Contains SPIR-V code with one or more entry points.
Note that it is advised to wrap around a ShaderModule
with a struct that is different for
each shader.
Methods
impl ShaderModule
[src]
pub unsafe fn new(
device: Arc<Device>,
spirv: &[u8]
) -> Result<Arc<ShaderModule>, OomError>
[src]
device: Arc<Device>,
spirv: &[u8]
) -> Result<Arc<ShaderModule>, OomError>
Builds a new shader module from SPIR-V bytes.
Safety
- The SPIR-V code is not validated.
- The SPIR-V code may require some features that are not enabled. This isn't checked by this function either.
pub unsafe fn from_words(
device: Arc<Device>,
spirv: &[u32]
) -> Result<Arc<ShaderModule>, OomError>
[src]
device: Arc<Device>,
spirv: &[u32]
) -> Result<Arc<ShaderModule>, OomError>
Builds a new shader module from SPIR-V 32-bit words.
Safety
- The SPIR-V code is not validated.
- The SPIR-V code may require some features that are not enabled. This isn't checked by this function either.
pub unsafe fn graphics_entry_point<'a, S, I, O, L>(
&'a self,
name: &'a CStr,
input: I,
output: O,
layout: L,
ty: GraphicsShaderType
) -> GraphicsEntryPoint<'a, S, I, O, L>
[src]
&'a self,
name: &'a CStr,
input: I,
output: O,
layout: L,
ty: GraphicsShaderType
) -> GraphicsEntryPoint<'a, S, I, O, L>
Gets access to an entry point contained in this module.
This is purely a logical operation. It returns a struct that represents the entry point but doesn't actually do anything.
Safety
- The user must check that the entry point exists in the module, as this is not checked by Vulkan.
- The input, output and layout must correctly describe the input, output and layout used by this stage.
pub unsafe fn compute_entry_point<'a, S, L>(
&'a self,
name: &'a CStr,
layout: L
) -> ComputeEntryPoint<'a, S, L>
[src]
&'a self,
name: &'a CStr,
layout: L
) -> ComputeEntryPoint<'a, S, L>
Gets access to an entry point contained in this module.
This is purely a logical operation. It returns a struct that represents the entry point but doesn't actually do anything.
Safety
- The user must check that the entry point exists in the module, as this is not checked by Vulkan.
- The layout must correctly describe the layout used by this stage.
Trait Implementations
impl Debug for ShaderModule
[src]
fn fmt(&self, __arg_0: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl VulkanObject for ShaderModule
[src]
type Object = ShaderModule
The type of the object.
const TYPE: DebugReportObjectTypeEXT
TYPE: DebugReportObjectTypeEXT = vk::DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT
The DebugReportObjectTypeEXT
of the internal Vulkan handle.
fn internal_object(&self) -> ShaderModule
[src]
Returns a reference to the object.