vulkan-tutorial/src/Image.hs
2022-12-28 04:18:59 +01:00

48 lines
1.2 KiB
Haskell

{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE DataKinds #-}
module Image where
import qualified Vulkan as Vk
import qualified Vulkan.Zero as Vk
imageCreate
:: Vk.Format
-> Vk.Extent3D
-> Vk.ImageUsageFlags
-> Vk.ImageCreateInfo '[]
imageCreate format extent usageFlags =
let imageCreateInfo = Vk.zero
{ Vk.imageType = Vk.IMAGE_TYPE_2D
, Vk.format = format
, Vk.extent = extent
, Vk.mipLevels = 1
, Vk.arrayLayers = 1
, Vk.samples = Vk.SAMPLE_COUNT_1_BIT
, Vk.tiling = Vk.IMAGE_TILING_OPTIMAL
, Vk.usage = usageFlags
}
in imageCreateInfo
imageviewCreate
:: Vk.Image
-> Vk.Format
-> Vk.ImageAspectFlags
-> Vk.ImageViewCreateInfo '[]
imageviewCreate image format aspectFlags =
let imageviewCreateInfo = Vk.zero
{ Vk.viewType = Vk.IMAGE_VIEW_TYPE_2D
, Vk.image = image
, Vk.format = format
, Vk.subresourceRange = Vk.zero
{ Vk.baseMipLevel = 0
, Vk.levelCount = 1
, Vk.baseArrayLayer = 0
, Vk.layerCount = 1
, Vk.aspectMask = aspectFlags
}
}
in imageviewCreateInfo