packages feed

gpu-vulkan-core-0.1.0.11: src/Gpu/Vulkan/Sparse/Buffer/Core.hsc

{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Gpu.Vulkan.Sparse.Buffer.Core where

import Foreign.Ptr
import Foreign.Storable
import Foreign.C.Struct
import Data.Word

import Gpu.Vulkan.Buffer.Core qualified as Buffer
import Gpu.Vulkan.Sparse.Core

#include <vulkan/vulkan.h>

struct "MemoryBindInfo" #{size VkSparseBufferMemoryBindInfo}
	#{alignment VkSparseBufferMemoryBindInfo} [
	("buffer", ''Buffer.B,
		[| #{peek VkSparseBufferMemoryBindInfo, buffer} |],
		[| #{poke VkSparseBufferMemoryBindInfo, buffer} |]),
	("bindCount", ''#{type uint32_t},
		[| #{peek VkSparseBufferMemoryBindInfo, bindCount} |],
		[| #{poke VkSparseBufferMemoryBindInfo, bindCount} |]),
	("pBinds", ''PtrMemoryBind,
		[| #{peek VkSparseBufferMemoryBindInfo, pBinds} |],
		[| #{poke VkSparseBufferMemoryBindInfo, pBinds} |]) ]
	[''Show, ''Storable]

type PtrMemoryBindInfo = Ptr MemoryBindInfo