Struct vulkano::pipeline::shader::ShaderModule
source · pub struct ShaderModule { /* private fields */ }
Expand description
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.
Implementations
sourceimpl ShaderModule
impl ShaderModule
sourcepub unsafe fn new(
device: Arc<Device>,
spirv: &[u8]
) -> Result<Arc<ShaderModule>, OomError>
pub unsafe fn new(
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.
sourcepub unsafe fn from_words(
device: Arc<Device>,
spirv: &[u32]
) -> Result<Arc<ShaderModule>, OomError>
pub unsafe fn from_words(
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.
sourcepub 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>
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>
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.
sourcepub unsafe fn compute_entry_point<'a, S, L>(
&'a self,
name: &'a CStr,
layout: L
) -> ComputeEntryPoint<'a, S, L>
pub unsafe fn compute_entry_point<'a, S, L>(
&'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
sourceimpl Debug for ShaderModule
impl Debug for ShaderModule
sourceimpl Drop for ShaderModule
impl Drop for ShaderModule
sourceimpl VulkanObject for ShaderModule
impl VulkanObject for ShaderModule
sourceconst TYPE: DebugReportObjectTypeEXT = 15u32
const TYPE: DebugReportObjectTypeEXT = 15u32
The
DebugReportObjectTypeEXT
of the internal Vulkan handle.sourcefn internal_object(&self) -> ShaderModule
fn internal_object(&self) -> ShaderModule
Returns a reference to the object.
Auto Trait Implementations
impl RefUnwindSafe for ShaderModule
impl Send for ShaderModule
impl Sync for ShaderModule
impl Unpin for ShaderModule
impl UnwindSafe for ShaderModule
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Content for T
impl<T> Content for T
sourcefn ref_from_ptr<'a>(ptr: *mut c_void, size: usize) -> Option<*mut T>
fn ref_from_ptr<'a>(ptr: *mut c_void, size: usize) -> Option<*mut T>
Builds a pointer to this type from a raw pointer.
sourcefn is_size_suitable(size: usize) -> bool
fn is_size_suitable(size: usize) -> bool
Returns true if the size is suitable to store a type like this.
sourcefn indiv_size() -> usize
fn indiv_size() -> usize
Returns the size of an individual element.