{-# LANGUAGE ImportQualifiedPost #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Gpu.Vulkan.Sparse.Middle.Internal where import Gpu.Vulkan.Device.Middle.Internal qualified as Device import Gpu.Vulkan.Memory.Middle.Internal qualified as Memory import Gpu.Vulkan.Sparse.Enum import Gpu.Vulkan.Sparse.Core qualified as C data MemoryBind = MemoryBind { MemoryBind -> Size memoryBindResourceOffset :: Device.Size, MemoryBind -> Size memoryBindSize :: Device.Size, MemoryBind -> M memoryBindMemory :: Memory.M, MemoryBind -> Size memoryBindMemoryOffset :: Device.Size, MemoryBind -> MemoryBindFlags memoryBindFlags :: MemoryBindFlags } memoryBindToCore :: MemoryBind -> IO C.MemoryBind memoryBindToCore :: MemoryBind -> IO MemoryBind memoryBindToCore MemoryBind { memoryBindResourceOffset :: MemoryBind -> Size memoryBindResourceOffset = Device.Size Word64 ro, memoryBindSize :: MemoryBind -> Size memoryBindSize = Device.Size Word64 sz, memoryBindMemory :: MemoryBind -> M memoryBindMemory = M mm, memoryBindMemoryOffset :: MemoryBind -> Size memoryBindMemoryOffset = Device.Size Word64 mo, memoryBindFlags :: MemoryBind -> MemoryBindFlags memoryBindFlags = MemoryBindFlagBits Word32 fs } = do cmm <- M -> IO M Memory.mToCore M mm pure C.MemoryBind { C.memoryBindResourceOffset = ro, C.memoryBindSize = sz, C.memoryBindMemory = cmm, C.memoryBindMemoryOffset = mo, C.memoryBindFlags = fs }