[][src]Struct vulkano::pipeline::shader::ShaderModule

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.

Implementations

impl ShaderModule[src]

pub unsafe fn new(
    device: Arc<Device>,
    spirv: &[u8]
) -> Result<Arc<ShaderModule>, OomError>
[src]

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]

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]

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]

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]

impl Drop for ShaderModule[src]

impl VulkanObject for ShaderModule[src]

type Object = ShaderModule

The type of 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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Content for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.