packages feed

gpu-vulkan-core 0.1.0.8 → 0.1.0.11

raw patch · 7 files changed

+234/−6 lines, 7 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Gpu.Vulkan.Image.Core: data Subresource
+ Gpu.Vulkan.Image.Core: instance Foreign.Storable.Storable Gpu.Vulkan.Image.Core.Subresource
+ Gpu.Vulkan.Image.Core: instance GHC.Show.Show Gpu.Vulkan.Image.Core.Subresource
+ Gpu.Vulkan.Image.Core: pattern Subresource :: Word32 -> Word32 -> Word32 -> Subresource
+ Gpu.Vulkan.Image.Core: subresourceArrayLayer :: Subresource -> Word32
+ Gpu.Vulkan.Image.Core: subresourceAspectMask :: Subresource -> Word32
+ Gpu.Vulkan.Image.Core: subresourceMipLevel :: Subresource -> Word32
+ Gpu.Vulkan.Queue.Core: bindSparse :: Q -> Word32 -> Ptr BindSparseInfo -> F -> IO Int32
+ Gpu.Vulkan.Queue.Core: bindSparseInfoBufferBindCount :: BindSparseInfo -> Word32
+ Gpu.Vulkan.Queue.Core: bindSparseInfoImageBindCount :: BindSparseInfo -> Word32
+ Gpu.Vulkan.Queue.Core: bindSparseInfoImageOpaqueBindCount :: BindSparseInfo -> Word32
+ Gpu.Vulkan.Queue.Core: bindSparseInfoPBufferBinds :: BindSparseInfo -> PtrMemoryBindInfo
+ Gpu.Vulkan.Queue.Core: bindSparseInfoPImageBinds :: BindSparseInfo -> PtrMemoryBindInfo
+ Gpu.Vulkan.Queue.Core: bindSparseInfoPImageOpaqueBinds :: BindSparseInfo -> PtrOpaqueMemoryBindInfo
+ Gpu.Vulkan.Queue.Core: bindSparseInfoPNext :: BindSparseInfo -> PtrVoid
+ Gpu.Vulkan.Queue.Core: bindSparseInfoPSignalSemaphores :: BindSparseInfo -> PtrS
+ Gpu.Vulkan.Queue.Core: bindSparseInfoPWaitSemaphores :: BindSparseInfo -> PtrS
+ Gpu.Vulkan.Queue.Core: bindSparseInfoSType :: BindSparseInfo -> ()
+ Gpu.Vulkan.Queue.Core: bindSparseInfoSignalSemaphoreCount :: BindSparseInfo -> Word32
+ Gpu.Vulkan.Queue.Core: bindSparseInfoWaitSemaphoreCount :: BindSparseInfo -> Word32
+ Gpu.Vulkan.Queue.Core: data BindSparseInfo
+ Gpu.Vulkan.Queue.Core: instance Foreign.Storable.Storable Gpu.Vulkan.Queue.Core.BindSparseInfo
+ Gpu.Vulkan.Queue.Core: instance GHC.Show.Show Gpu.Vulkan.Queue.Core.BindSparseInfo
+ Gpu.Vulkan.Queue.Core: pattern BindSparseInfo :: () -> PtrVoid -> Word32 -> PtrS -> Word32 -> PtrMemoryBindInfo -> Word32 -> PtrOpaqueMemoryBindInfo -> Word32 -> PtrMemoryBindInfo -> Word32 -> PtrS -> BindSparseInfo
+ Gpu.Vulkan.Sparse.Buffer.Core: MemoryBindInfo_ :: ForeignPtr MemoryBindInfo -> MemoryBindInfo
+ Gpu.Vulkan.Sparse.Buffer.Core: instance Foreign.Storable.Storable Gpu.Vulkan.Sparse.Buffer.Core.MemoryBindInfo
+ Gpu.Vulkan.Sparse.Buffer.Core: instance GHC.Show.Show Gpu.Vulkan.Sparse.Buffer.Core.MemoryBindInfo
+ Gpu.Vulkan.Sparse.Buffer.Core: memoryBindInfo :: MemoryBindInfo -> (B, Word32, PtrMemoryBind)
+ Gpu.Vulkan.Sparse.Buffer.Core: newtype MemoryBindInfo
+ Gpu.Vulkan.Sparse.Buffer.Core: pattern MemoryBindInfo :: B -> Word32 -> PtrMemoryBind -> MemoryBindInfo
+ Gpu.Vulkan.Sparse.Buffer.Core: type PtrMemoryBindInfo = Ptr MemoryBindInfo
+ Gpu.Vulkan.Sparse.Core: MemoryBind_ :: ForeignPtr MemoryBind -> MemoryBind
+ Gpu.Vulkan.Sparse.Core: instance Foreign.Storable.Storable Gpu.Vulkan.Sparse.Core.MemoryBind
+ Gpu.Vulkan.Sparse.Core: instance GHC.Show.Show Gpu.Vulkan.Sparse.Core.MemoryBind
+ Gpu.Vulkan.Sparse.Core: memoryBind :: MemoryBind -> (Word64, Word64, M, Word64, Word32)
+ Gpu.Vulkan.Sparse.Core: newtype MemoryBind
+ Gpu.Vulkan.Sparse.Core: pattern MemoryBind :: Word64 -> Word64 -> M -> Word64 -> Word32 -> MemoryBind
+ Gpu.Vulkan.Sparse.Core: type PtrMemoryBind = Ptr MemoryBind
+ Gpu.Vulkan.Sparse.Image.Core: MemoryBindInfo_ :: ForeignPtr MemoryBindInfo -> MemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: MemoryBind_ :: ForeignPtr MemoryBind -> MemoryBind
+ Gpu.Vulkan.Sparse.Image.Core: OpaqueMemoryBindInfo_ :: ForeignPtr OpaqueMemoryBindInfo -> OpaqueMemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: instance Foreign.Storable.Storable Gpu.Vulkan.Sparse.Image.Core.MemoryBind
+ Gpu.Vulkan.Sparse.Image.Core: instance Foreign.Storable.Storable Gpu.Vulkan.Sparse.Image.Core.MemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: instance Foreign.Storable.Storable Gpu.Vulkan.Sparse.Image.Core.OpaqueMemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: instance GHC.Show.Show Gpu.Vulkan.Sparse.Image.Core.MemoryBind
+ Gpu.Vulkan.Sparse.Image.Core: instance GHC.Show.Show Gpu.Vulkan.Sparse.Image.Core.MemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: instance GHC.Show.Show Gpu.Vulkan.Sparse.Image.Core.OpaqueMemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: memoryBind :: MemoryBind -> (Subresource, Offset3d, Extent3d, M, Word64, Word32)
+ Gpu.Vulkan.Sparse.Image.Core: memoryBindInfo :: MemoryBindInfo -> (I, Word32, PtrMemoryBind)
+ Gpu.Vulkan.Sparse.Image.Core: newtype MemoryBind
+ Gpu.Vulkan.Sparse.Image.Core: newtype MemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: newtype OpaqueMemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: opaqueMemoryBindInfo :: OpaqueMemoryBindInfo -> (I, Word32, PtrMemoryBind)
+ Gpu.Vulkan.Sparse.Image.Core: pattern MemoryBind :: Subresource -> Offset3d -> Extent3d -> M -> Word64 -> Word32 -> MemoryBind
+ Gpu.Vulkan.Sparse.Image.Core: pattern MemoryBindInfo :: I -> Word32 -> PtrMemoryBind -> MemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: pattern OpaqueMemoryBindInfo :: I -> Word32 -> PtrMemoryBind -> OpaqueMemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: type PtrMemoryBind = Ptr MemoryBind
+ Gpu.Vulkan.Sparse.Image.Core: type PtrMemoryBindInfo = Ptr MemoryBindInfo
+ Gpu.Vulkan.Sparse.Image.Core: type PtrOpaqueMemoryBindInfo = Ptr OpaqueMemoryBindInfo

Files

gpu-vulkan-core.cabal view
@@ -5,14 +5,14 @@ -- see: https://github.com/sol/hpack  name:           gpu-vulkan-core-version:        0.1.0.8+version:        0.1.0.11 synopsis:       Thin wrapper for Vulkan API description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/gpu-vulkan-core#readme> category:       GPU homepage:       https://github.com/YoshikuniJujo/gpu-vulkan-core#readme bug-reports:    https://github.com/YoshikuniJujo/gpu-vulkan-core/issues author:         Yoshikuni Jujo-maintainer:     example@example.com+maintainer:     yoshikuni.jujo@gmail.com copyright:      2022 Yoshikuni Jujo license:        BSD3 license-file:   LICENSE@@ -78,6 +78,9 @@       Gpu.Vulkan.Subpass.Core       Gpu.Vulkan.VertexInput.Core       Gpu.Vulkan.TypeSynonyms.Core+      Gpu.Vulkan.Sparse.Core+      Gpu.Vulkan.Sparse.Buffer.Core+      Gpu.Vulkan.Sparse.Image.Core   other-modules:       Data.Text.Tools       Paths_gpu_vulkan_core
src/Gpu/Vulkan/Buffer/Core.hsc view
@@ -44,7 +44,7 @@ import Gpu.Vulkan.Core import Gpu.Vulkan.TypeSynonyms.Core import Gpu.Vulkan.AllocationCallbacks.Core qualified as AllocationCallbacks-import Gpu.Vulkan.Device.Core qualified as Device+import {-# SOURCE #-} Gpu.Vulkan.Device.Core qualified as Device import Gpu.Vulkan.Memory.Core qualified as Memory import Gpu.Vulkan.Image.Core qualified as Image 
src/Gpu/Vulkan/Image/Core.hsc view
@@ -46,6 +46,12 @@ 	subresourceLayersAspectMask, subresourceLayersMipLevel, 	subresourceLayersBaseArrayLayer, subresourceLayersLayerCount, +	-- * Subresource++	Subresource, pattern Subresource,+	subresourceAspectMask, subresourceMipLevel,+	subresourceArrayLayer+ 	) where  import Foreign.Ptr@@ -59,7 +65,7 @@ import Gpu.Vulkan.Core import Gpu.Vulkan.TypeSynonyms.Core import Gpu.Vulkan.AllocationCallbacks.Core qualified as AllocationCallbacks-import Gpu.Vulkan.Device.Core qualified as Device+import {-# SOURCE #-} Gpu.Vulkan.Device.Core qualified as Device import Gpu.Vulkan.Memory.Core qualified as Memory  #include <vulkan/vulkan.h>@@ -217,4 +223,17 @@ 		[| \p -> peekArray 2 (#{ptr VkImageBlit, dstOffsets} p) |], 		[| \p os -> pokeArray 			(#{ptr VkImageBlit, dstOffsets} p) $ take 2 os |]) ]+	[''Show, ''Storable]++struct "Subresource" #{size VkImageSubresource}+	#{alignment VkImageSubresource} [+	("aspectMask", ''#{type VkImageAspectFlags},+		[| #{peek VkImageSubresource, aspectMask} |],+		[| #{poke VkImageSubresource, aspectMask} |]),+	("mipLevel", ''#{type uint32_t},+		[| #{peek VkImageSubresource, mipLevel} |],+		[| #{poke VkImageSubresource, mipLevel} |]),+	("arrayLayer", ''#{type uint32_t},+		[| #{peek VkImageSubresource, arrayLayer} |],+		[| #{poke VkImageSubresource, arrayLayer} |]) ] 	[''Show, ''Storable]
src/Gpu/Vulkan/Queue/Core.hsc view
@@ -1,21 +1,42 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TupleSections #-}+{-# LAnGUAGE PatternSynonyms, ViewPatterns #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-}  module Gpu.Vulkan.Queue.Core ( -	-- SUBMIT AND WAIT IDLE+	-- * SUBMIT AND WAIT IDLE -	Q, submit, waitIdle+	Q, submit, waitIdle, +	-- * BIND SPARSE++	bindSparse, BindSparseInfo, pattern BindSparseInfo,+	bindSparseInfoSType, bindSparseInfoPNext,+	bindSparseInfoWaitSemaphoreCount, bindSparseInfoPWaitSemaphores,+	bindSparseInfoBufferBindCount, bindSparseInfoPBufferBinds,+	bindSparseInfoImageOpaqueBindCount, bindSparseInfoPImageOpaqueBinds,+	bindSparseInfoImageBindCount, bindSparseInfoPImageBinds,+	bindSparseInfoSignalSemaphoreCount, bindSparseInfoPSignalSemaphores+ 	) where  import Foreign.Ptr+import Foreign.Storable+import Foreign.C.Struct+import Foreign.C.Struct.TypeSynonyms import Data.Word import Data.Int  import Gpu.Vulkan.Core  import {-# SOURCE #-} qualified Gpu.Vulkan.Fence.Core as Fence+import {-# SOURCE #-} Gpu.Vulkan.Semaphore.Core qualified as Semaphore +import Gpu.Vulkan.Sparse.Buffer.Core qualified as Spr.Bffr+import Gpu.Vulkan.Sparse.Image.Core qualified as Spr.Img+ #include <vulkan/vulkan.h>  data QTag@@ -26,3 +47,47 @@ 	IO #{type VkResult}  foreign import ccall "vkQueueWaitIdle" waitIdle :: Q -> IO #{type VkResult}++struct "BindSparseInfo" #{size VkBindSparseInfo} #{alignment VkBindSparseInfo} [+	("sType", ''(), [| const $ pure () |],+		[| \p _ -> #{poke VkBufferCreateInfo, sType } p+			(#{const VK_STRUCTURE_TYPE_BIND_SPARSE_INFO} ::+				#{type VkStructureType}) |]),+	("pNext", ''PtrVoid,+		[| #{peek VkBindSparseInfo, pNext} |],+		[| #{poke VkBindSparseInfo, pNext} |]),+	("waitSemaphoreCount", ''#{type uint32_t},+		[| #{peek VkBindSparseInfo, waitSemaphoreCount} |],+		[| #{poke VkBindSparseInfo, waitSemaphoreCount} |]),+	("pWaitSemaphores", ''Semaphore.PtrS,+		[| #{peek VkBindSparseInfo, pWaitSemaphores} |],+		[| #{poke VkBindSparseInfo, pWaitSemaphores} |]),+	("bufferBindCount", ''#{type uint32_t},+		[| #{peek VkBindSparseInfo, bufferBindCount} |],+		[| #{poke VkBindSparseInfo, bufferBindCount} |]),+	("pBufferBinds", ''Spr.Bffr.PtrMemoryBindInfo,+		[| #{peek VkBindSparseInfo, pBufferBinds} |],+		[| #{poke VkBindSparseInfo, pBufferBinds} |]),+	("imageOpaqueBindCount", ''#{type uint32_t},+		[| #{peek VkBindSparseInfo, imageOpaqueBindCount} |],+		[| #{poke VkBindSparseInfo, imageOpaqueBindCount} |]),+	("pImageOpaqueBinds", ''Spr.Img.PtrOpaqueMemoryBindInfo,+		[| #{peek VkBindSparseInfo, pImageOpaqueBinds} |],+		[| #{poke VkBindSparseInfo, pImageOpaqueBinds} |]),+	("imageBindCount", ''#{type uint32_t},+		[| #{peek VkBindSparseInfo, imageBindCount} |],+		[| #{poke VkBindSparseInfo, imageBindCount} |]),+	("pImageBinds", ''Spr.Img.PtrMemoryBindInfo,+		[| #{peek VkBindSparseInfo, pImageBinds} |],+		[| #{poke VkBindSparseInfo, pImageBinds} |]),+	("signalSemaphoreCount", ''#{type uint32_t},+		[| #{peek VkBindSparseInfo, signalSemaphoreCount} |],+		[| #{poke VkBindSparseInfo, signalSemaphoreCount} |]),+	("pSignalSemaphores", ''Semaphore.PtrS,+		[| #{peek VkBindSparseInfo, pSignalSemaphores} |],+		[| #{poke VkBindSparseInfo, pSignalSemaphores} |]) ]+	[''Show, ''Storable]++foreign import ccall "vkQueueBindSparse" bindSparse ::+	Q -> #{type uint32_t} -> Ptr BindSparseInfo -> Fence.F ->+	IO #{type VkResult}
+ src/Gpu/Vulkan/Sparse/Buffer/Core.hsc view
@@ -0,0 +1,32 @@+{-# 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
+ src/Gpu/Vulkan/Sparse/Core.hsc view
@@ -0,0 +1,36 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE PatternSynonyms, ViewPatterns #-}+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}++module Gpu.Vulkan.Sparse.Core where++import Foreign.Ptr+import Foreign.Storable+import Foreign.C.Struct+import Data.Word++import Gpu.Vulkan.Memory.Core qualified as Memory++#include <vulkan/vulkan.h>++struct "MemoryBind" #{size VkSparseMemoryBind} #{alignment VkSparseMemoryBind} [+	("resourceOffset", ''#{type VkDeviceSize},+		[| #{peek VkSparseMemoryBind, resourceOffset} |],+		[| #{poke VkSparseMemoryBind, resourceOffset} |]),+	("size", ''#{type VkDeviceSize},+		[| #{peek VkSparseMemoryBind, size} |],+		[| #{poke VkSparseMemoryBind, size} |]),+	("memory", ''Memory.M,+		[| #{peek VkSparseMemoryBind, memory} |],+		[| #{poke VkSparseMemoryBind, memory} |]),+	("memoryOffset", ''#{type VkDeviceSize},+		[| #{peek VkSparseMemoryBind, memoryOffset} |],+		[| #{poke VkSparseMemoryBind, memoryOffset} |]),+	("flags", ''#{type VkSparseMemoryBindFlags},+		[| #{peek VkSparseMemoryBind, flags} |],+		[| #{poke VkSparseMemoryBind, flags} |]) ]+	[''Show, ''Storable]++type PtrMemoryBind = Ptr MemoryBind
+ src/Gpu/Vulkan/Sparse/Image/Core.hsc view
@@ -0,0 +1,73 @@+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE PatternSynonyms, ViewPatterns #-}+{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}++module Gpu.Vulkan.Sparse.Image.Core where++import Foreign.Ptr+import Foreign.Storable+import Foreign.C.Struct+import Data.Word++import Gpu.Vulkan.Core+import Gpu.Vulkan.Memory.Core qualified as Memory+import Gpu.Vulkan.Image.Core qualified as Image+import Gpu.Vulkan.Sparse.Core qualified as S++#include <vulkan/vulkan.h>++struct "OpaqueMemoryBindInfo" #{size VkSparseImageOpaqueMemoryBindInfo}+	#{alignment VkSparseImageOpaqueMemoryBindInfo} [+	("image", ''Image.I,+		[| #{peek VkSparseImageOpaqueMemoryBindInfo, image} |],+		[| #{poke VkSparseImageOpaqueMemoryBindInfo, image} |]),+	("bindCount", ''#{type uint32_t},+		[| #{peek VkSparseImageOpaqueMemoryBindInfo, bindCount} |],+		[| #{poke VkSparseImageOpaqueMemoryBindInfo, bindCount} |]),+	("pBinds", ''S.PtrMemoryBind,+		[| #{peek VkSparseImageOpaqueMemoryBindInfo, pBinds} |],+		[| #{poke VkSparseImageOpaqueMemoryBindInfo, pBinds} |]) ]+	[''Show, ''Storable]++type PtrOpaqueMemoryBindInfo = Ptr OpaqueMemoryBindInfo++struct "MemoryBind" #{size VkSparseImageMemoryBind}+	#{alignment VkSparseImageMemoryBind} [+	("subresource", ''Image.Subresource,+		[| #{peek VkSparseImageMemoryBind, subresource} |],+		[| #{poke VkSparseImageMemoryBind, subresource} |]),+	("offset", ''Offset3d,+		[| #{peek VkSparseImageMemoryBind, offset} |],+		[| #{poke VkSparseImageMemoryBind, offset} |]),+	("extent", ''Extent3d,+		[| #{peek VkSparseImageMemoryBind, extent} |],+		[| #{poke VkSparseImageMemoryBind, extent} |]),+	("memory", ''Memory.M,+		[| #{peek VkSparseImageMemoryBind, memory} |],+		[| #{poke VkSparseImageMemoryBind, memory} |]),+	("memoryOffset", ''#{type VkDeviceSize},+		[| #{peek VkSparseImageMemoryBind, memoryOffset} |],+		[| #{poke VkSparseImageMemoryBind, memoryOffset} |]),+	("flags", ''#{type VkSparseMemoryBindFlags},+		[| #{peek VkSparseImageMemoryBind, flags} |],+		[| #{poke VkSparseImageMemoryBind, flags} |]) ]+	[''Show, ''Storable]++type PtrMemoryBind = Ptr MemoryBind++struct "MemoryBindInfo" #{size VkSparseImageMemoryBindInfo}+	#{alignment VkSparseImageMemoryBindInfo} [+	("image", ''Image.I,+		[| #{peek VkSparseImageMemoryBindInfo, image} |],+		[| #{poke VkSparseImageMemoryBindInfo, image} |]),+	("bindCount", ''#{type uint32_t},+		[| #{peek VkSparseImageMemoryBindInfo, bindCount} |],+		[| #{poke VkSparseImageMemoryBindInfo, bindCount} |]),+	("pBinds", ''PtrMemoryBind,+		[| #{peek VkSparseImageMemoryBindInfo, pBinds} |],+		[| #{poke VkSparseImageMemoryBindInfo, pBinds} |]) ]+	[''Show, ''Storable]++type PtrMemoryBindInfo = Ptr MemoryBindInfo