module Graphics.Vulkan.KHR.DisplaySwapchain where
import Graphics.Vulkan.Device( VkDevice(..)
)
import Graphics.Vulkan.KHR.Swapchain( VkSwapchainKHR(..)
, VkSwapchainCreateInfoKHR(..)
, VkSwapchainCreateFlagsKHR(..)
)
import Data.Word( Word64
, Word32
)
import Foreign.Ptr( Ptr
, plusPtr
)
import Graphics.Vulkan.KHR.Surface( VkColorSpaceKHR(..)
, VkSurfaceTransformFlagBitsKHR(..)
, VkPresentModeKHR(..)
, VkCompositeAlphaFlagBitsKHR(..)
, VkSurfaceKHR(..)
)
import Data.Int( Int32
)
import Foreign.Storable( Storable(..)
)
import Data.Void( Void
)
import Graphics.Vulkan.Memory( VkInternalAllocationType(..)
, PFN_vkAllocationFunction
, PFN_vkReallocationFunction
, PFN_vkInternalAllocationNotification
, VkAllocationCallbacks(..)
, VkSystemAllocationScope(..)
, PFN_vkFreeFunction
, PFN_vkInternalFreeNotification
)
import Graphics.Vulkan.Image( VkImageUsageFlags(..)
, VkImageUsageFlagBits(..)
)
import Graphics.Vulkan.Core( VkResult(..)
, VkBool32(..)
, VkExtent2D(..)
, VkFlags(..)
, VkFormat(..)
, VkOffset2D(..)
, VkRect2D(..)
, VkStructureType(..)
, VkSharingMode(..)
)
import Foreign.C.Types( CSize(..)
)
data VkDisplayPresentInfoKHR =
VkDisplayPresentInfoKHR{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkSrcRect :: VkRect2D
, vkDstRect :: VkRect2D
, vkPersistent :: VkBool32
}
deriving (Eq)
instance Storable VkDisplayPresentInfoKHR where
sizeOf ~_ = 56
alignment ~_ = 8
peek ptr = VkDisplayPresentInfoKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 16) (vkSrcRect (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 32) (vkDstRect (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 48) (vkPersistent (poked :: VkDisplayPresentInfoKHR))
foreign import ccall "vkCreateSharedSwapchainsKHR" vkCreateSharedSwapchainsKHR ::
VkDevice ->
Word32 ->
Ptr VkSwapchainCreateInfoKHR ->
Ptr VkAllocationCallbacks -> Ptr VkSwapchainKHR -> IO VkResult