wgpu-raw-hs-0.2.0.0: src/WGPU/Raw/Types.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module WGPU.Raw.Types where
import Data.Word (Word32)
import Foreign (FunPtr, Ptr, Storable)
import Foreign.C.Types (CChar)
import WGPU.Raw.Generated.Enum.WGPUBufferMapAsyncStatus
import WGPU.Raw.Generated.Enum.WGPUCreatePipelineAsyncStatus
import WGPU.Raw.Generated.Enum.WGPUErrorType
import WGPU.Raw.Generated.Enum.WGPULogLevel
import WGPU.Raw.Generated.Enum.WGPUQueueWorkDoneStatus
import WGPU.Raw.Generated.Enum.WGPUTextureFormat
-------------------------------------------------------------------------------
-- Opaque pointers
newtype WGPUAdapter = WGPUAdapter (Ptr ())
deriving (Storable)
newtype WGPUBindGroup = WGPUBindGroup (Ptr ())
deriving (Storable)
newtype WGPUBindGroupLayout = WGPUBindGroupLayout (Ptr ())
deriving (Storable)
newtype WGPUBuffer = WGPUBuffer (Ptr ())
deriving (Storable)
newtype WGPUCommandBuffer = WGPUCommandBuffer (Ptr ())
deriving (Storable)
newtype WGPUCommandEncoder = WGPUCommandEncoder (Ptr ())
deriving (Storable)
newtype WGPUComputePassEncoder = WGPUComputePassEncoder (Ptr ())
deriving (Storable)
newtype WGPUComputePipeline = WGPUComputePipeline (Ptr ())
deriving (Storable)
newtype WGPUDevice = WGPUDevice (Ptr ())
deriving (Storable)
newtype WGPUInstance = WGPUInstance (Ptr ())
deriving (Storable)
newtype WGPUPipelineLayout = WGPUPipelineLayout (Ptr ())
deriving (Storable)
newtype WGPUQuerySet = WGPUQuerySet (Ptr ())
deriving (Storable)
newtype WGPUQueue = WGPUQueue (Ptr ())
deriving (Storable)
newtype WGPURenderBundle = WGPURenderBundle (Ptr ())
deriving (Storable)
newtype WGPURenderBundleEncoder = WGPURenderBundleEncoder (Ptr ())
deriving (Storable)
newtype WGPURenderPassEncoder = WGPURenderPassEncoder (Ptr ())
deriving (Storable)
newtype WGPURenderPipeline = WGPURenderPipeline (Ptr ())
deriving (Storable)
newtype WGPUSampler = WGPUSampler (Ptr ())
deriving (Storable)
newtype WGPUShaderModule = WGPUShaderModule (Ptr ())
deriving (Storable)
newtype WGPUSurface = WGPUSurface (Ptr ())
deriving (Storable)
newtype WGPUSwapChain = WGPUSwapChain (Ptr ())
deriving (Storable)
newtype WGPUTexture = WGPUTexture (Ptr ())
deriving (Storable)
newtype WGPUTextureView = WGPUTextureView (Ptr ())
deriving (Storable)
-------------------------------------------------------------------------------
-- Extra type aliases
type WGPUFlags = Word32
type WGPUBufferUsageFlags = WGPUFlags
type WGPUColorWriteMaskFlags = WGPUFlags
type WGPUMapModeFlags = WGPUFlags
type WGPUShaderStageFlags = WGPUFlags
type WGPUTextureUsageFlags = WGPUFlags
-------------------------------------------------------------------------------
-- Function pointers from webgpu.h
type WGPUProc = FunPtr (IO ())
type WGPURequestDeviceCallback =
FunPtr
( WGPUDevice ->
Ptr () ->
IO ()
)
type WGPUBufferMapCallback =
FunPtr
( WGPUBufferMapAsyncStatus ->
Ptr () ->
IO ()
)
type WGPUCreateComputePipelineAsyncCallback =
FunPtr
( WGPUCreatePipelineAsyncStatus ->
WGPUComputePipeline ->
Ptr CChar ->
Ptr () ->
IO ()
)
type WGPUCreateRenderPipelineAsyncCallback =
FunPtr
( WGPUCreatePipelineAsyncStatus ->
WGPURenderPipeline ->
Ptr CChar ->
Ptr () ->
IO ()
)
type WGPUDeviceLostCallback =
FunPtr
( Ptr CChar ->
Ptr () ->
IO ()
)
type WGPUErrorCallback =
FunPtr
( WGPUErrorType ->
Ptr CChar ->
Ptr () ->
IO ()
)
type WGPURequestAdapterCallback =
FunPtr
( WGPUAdapter ->
Ptr () ->
IO ()
)
type WGPUQueueWorkDoneCallback =
FunPtr
( WGPUQueueWorkDoneStatus ->
Ptr () ->
IO ()
)
type WGPUSurfaceGetPreferredFormatCallback =
FunPtr
( WGPUTextureFormat ->
Ptr () ->
IO ()
)
-------------------------------------------------------------------------------
-- Function pointers from wgpu.h
type WGPULogCallback =
FunPtr
( WGPULogLevel ->
Ptr CChar ->
IO ()
)