keid-core-0.1.7.1: Core parts of Keid engine.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Engine.Vulkan.Shader

Documentation

data Shader Source #

Constructors

Shader 

Fields

create :: (MonadIO io, HasVulkan ctx, StageInfo t) => ctx -> t (Maybe ByteString) -> Maybe SpecializationInfo -> io Shader Source #

destroy :: (MonadIO io, HasVulkan ctx) => ctx -> Shader -> io () Source #

withSpecialization :: (Specialization spec, MonadUnliftIO m) => spec -> (Maybe SpecializationInfo -> m a) -> m a Source #

class Specialization a where Source #

Instances

Instances details
Specialization Int32 Source # 
Instance details

Defined in Engine.Vulkan.Shader

Specialization Word32 Source #

The constant_id can only be applied to a scalar *int*, a scalar *float* or a scalar *bool*. (https:/github.comKhronosGroupGLSLblobmasterextensionskhrGL_KHR_vulkan_glsl.txt)

XXX: Apparently it is possible to pass uints and doubles too.

Instance details

Defined in Engine.Vulkan.Shader

Specialization () Source # 
Instance details

Defined in Engine.Vulkan.Shader

Methods

specializationData :: () -> [Word32] Source #

Specialization Bool Source # 
Instance details

Defined in Engine.Vulkan.Shader

Specialization Float Source # 
Instance details

Defined in Engine.Vulkan.Shader

Specialization [Word32] Source # 
Instance details

Defined in Engine.Vulkan.Shader

(SpecializationConst a, SpecializationConst b) => Specialization (a, b) Source # 
Instance details

Defined in Engine.Vulkan.Shader

Methods

specializationData :: (a, b) -> [Word32] Source #

(SpecializationConst a, SpecializationConst b, SpecializationConst c) => Specialization (a, b, c) Source # 
Instance details

Defined in Engine.Vulkan.Shader

Methods

specializationData :: (a, b, c) -> [Word32] Source #

(SpecializationConst a, SpecializationConst b, SpecializationConst c, SpecializationConst d) => Specialization (a, b, c, d) Source # 
Instance details

Defined in Engine.Vulkan.Shader

Methods

specializationData :: (a, b, c, d) -> [Word32] Source #

(SpecializationConst a, SpecializationConst b, SpecializationConst c, SpecializationConst d, SpecializationConst e) => Specialization (a, b, c, d, e) Source # 
Instance details

Defined in Engine.Vulkan.Shader

Methods

specializationData :: (a, b, c, d, e) -> [Word32] Source #

(SpecializationConst a, SpecializationConst b, SpecializationConst c, SpecializationConst d, SpecializationConst e, SpecializationConst f) => Specialization (a, b, c, d, e, f) Source # 
Instance details

Defined in Engine.Vulkan.Shader

Methods

specializationData :: (a, b, c, d, e, f) -> [Word32] Source #

class SpecializationConst a where Source #

Methods

packConstData :: a -> Word32 Source #

Instances

Instances details
SpecializationConst Int32 Source # 
Instance details

Defined in Engine.Vulkan.Shader

SpecializationConst Word32 Source # 
Instance details

Defined in Engine.Vulkan.Shader

SpecializationConst Bool Source # 
Instance details

Defined in Engine.Vulkan.Shader

SpecializationConst Float Source # 
Instance details

Defined in Engine.Vulkan.Shader