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 }