vulkan-tutorial/src/Types.hs
2022-10-26 16:52:55 +02:00

30 lines
1,016 B
Haskell

module Types where
import qualified Data.Vector as V
import Foreign.C.Types (CInt)
import Linear
import qualified SDL
import qualified Vulkan as Vk
data ShaderContainer = ShaderContainer
{ containedVertexShader :: Vk.ShaderModule
, containedFragmentShader :: Vk.ShaderModule
}
deriving (Show)
data EngineData = EngineData
{ engineWindow :: SDL.Window
, engineWindowDimensions :: V2 CInt
, engineLogicalDevice :: Vk.Device
, engineSwapchain :: Vk.SwapchainKHR
, engineQueue :: Vk.Queue
, engineCommandBuffers :: V.Vector Vk.CommandBuffer
, engineFramebuffers :: V.Vector Vk.Framebuffer
, redEnginePipelines :: V.Vector Vk.Pipeline
, rainbowEnginePipelines :: V.Vector Vk.Pipeline
, engineRenderPass :: Vk.RenderPass
, engineInFlightFence :: Vk.Fence
, engineImageAvailableSemaphore :: Vk.Semaphore
, engineRenderFinishedSemaphore :: Vk.Semaphore
}