gpu-vulkan-core-0.1.0.7: src/Gpu/Vulkan/VertexInput/Core.hsc
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Gpu.Vulkan.VertexInput.Core (
-- * BINDING DESCRIPTION
BindingDescription, PtrBindingDescription, pattern BindingDescription,
bindingDescriptionBinding, bindingDescriptionStride,
bindingDescriptionInputRate,
-- * ATTRIBUTE DESCRIPTION
AttributeDescription, PtrAttributeDescription,
pattern AttributeDescription,
attributeDescriptionLocation, attributeDescriptionBinding,
attributeDescriptionFormat, attributeDescriptionOffset
) where
import Foreign.Ptr
import Foreign.Storable
import Foreign.C.Struct
import Data.Word
#include <vulkan/vulkan.h>
struct "BindingDescription" #{size VkVertexInputBindingDescription}
#{alignment VkVertexInputBindingDescription} [
("binding", ''#{type uint32_t},
[| #{peek VkVertexInputBindingDescription, binding} |],
[| #{poke VkVertexInputBindingDescription, binding} |]),
("stride", ''#{type uint32_t},
[| #{peek VkVertexInputBindingDescription, stride} |],
[| #{poke VkVertexInputBindingDescription, stride} |]),
("inputRate", ''#{type VkVertexInputRate},
[| #{peek VkVertexInputBindingDescription, inputRate} |],
[| #{poke VkVertexInputBindingDescription, inputRate} |]) ]
[''Show, ''Storable]
type PtrBindingDescription = Ptr BindingDescription
struct "AttributeDescription" #{size VkVertexInputAttributeDescription}
#{alignment VkVertexInputAttributeDescription} [
("location", ''#{type uint32_t},
[| #{peek VkVertexInputAttributeDescription, location} |],
[| #{poke VkVertexInputAttributeDescription, location} |]),
("binding", ''#{type uint32_t},
[| #{peek VkVertexInputAttributeDescription, binding} |],
[| #{poke VkVertexInputAttributeDescription, binding} |]),
("format", ''#{type VkFormat},
[| #{peek VkVertexInputAttributeDescription, format} |],
[| #{poke VkVertexInputAttributeDescription, format} |]),
("offset", ''#{type uint32_t},
[| #{peek VkVertexInputAttributeDescription, offset} |],
[| #{poke VkVertexInputAttributeDescription, offset} |]) ]
[''Show, ''Storable]
type PtrAttributeDescription = Ptr AttributeDescription