gpu-vulkan-core-0.1.0.7: src/Gpu/Vulkan/PushConstant/Core.hsc
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Gpu.Vulkan.PushConstant.Core (
-- * RANGE
Range, PtrRange, pattern Range, rangeStageFlags, rangeOffset, rangeSize
) where
import Foreign.Ptr
import Foreign.Storable
import Foreign.C.Struct
import Data.Word
#include <vulkan/vulkan.h>
struct "Range" #{size VkPushConstantRange} #{alignment VkPushConstantRange} [
("stageFlags", ''#{type VkShaderStageFlags},
[| #{peek VkPushConstantRange, stageFlags} |],
[| #{poke VkPushConstantRange, stageFlags} |]),
("offset", ''#{type uint32_t},
[| #{peek VkPushConstantRange, offset} |],
[| #{poke VkPushConstantRange, offset} |]),
("size", ''#{type uint32_t},
[| #{peek VkPushConstantRange, size} |],
[| #{poke VkPushConstantRange, size} |]) ]
[''Show, ''Storable]
type PtrRange = Ptr Range