{-# 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 (Ptr b -> Int -> IO WGPUAdapter
Ptr b -> Int -> WGPUAdapter -> IO ()
Ptr WGPUAdapter -> IO WGPUAdapter
Ptr WGPUAdapter -> Int -> IO WGPUAdapter
Ptr WGPUAdapter -> Int -> WGPUAdapter -> IO ()
Ptr WGPUAdapter -> WGPUAdapter -> IO ()
WGPUAdapter -> Int
(WGPUAdapter -> Int)
-> (WGPUAdapter -> Int)
-> (Ptr WGPUAdapter -> Int -> IO WGPUAdapter)
-> (Ptr WGPUAdapter -> Int -> WGPUAdapter -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUAdapter)
-> (forall b. Ptr b -> Int -> WGPUAdapter -> IO ())
-> (Ptr WGPUAdapter -> IO WGPUAdapter)
-> (Ptr WGPUAdapter -> WGPUAdapter -> IO ())
-> Storable WGPUAdapter
forall b. Ptr b -> Int -> IO WGPUAdapter
forall b. Ptr b -> Int -> WGPUAdapter -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUAdapter -> WGPUAdapter -> IO ()
$cpoke :: Ptr WGPUAdapter -> WGPUAdapter -> IO ()
peek :: Ptr WGPUAdapter -> IO WGPUAdapter
$cpeek :: Ptr WGPUAdapter -> IO WGPUAdapter
pokeByteOff :: Ptr b -> Int -> WGPUAdapter -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUAdapter -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUAdapter
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUAdapter
pokeElemOff :: Ptr WGPUAdapter -> Int -> WGPUAdapter -> IO ()
$cpokeElemOff :: Ptr WGPUAdapter -> Int -> WGPUAdapter -> IO ()
peekElemOff :: Ptr WGPUAdapter -> Int -> IO WGPUAdapter
$cpeekElemOff :: Ptr WGPUAdapter -> Int -> IO WGPUAdapter
alignment :: WGPUAdapter -> Int
$calignment :: WGPUAdapter -> Int
sizeOf :: WGPUAdapter -> Int
$csizeOf :: WGPUAdapter -> Int
Storable)

newtype WGPUBindGroup = WGPUBindGroup (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUBindGroup
Ptr b -> Int -> WGPUBindGroup -> IO ()
Ptr WGPUBindGroup -> IO WGPUBindGroup
Ptr WGPUBindGroup -> Int -> IO WGPUBindGroup
Ptr WGPUBindGroup -> Int -> WGPUBindGroup -> IO ()
Ptr WGPUBindGroup -> WGPUBindGroup -> IO ()
WGPUBindGroup -> Int
(WGPUBindGroup -> Int)
-> (WGPUBindGroup -> Int)
-> (Ptr WGPUBindGroup -> Int -> IO WGPUBindGroup)
-> (Ptr WGPUBindGroup -> Int -> WGPUBindGroup -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUBindGroup)
-> (forall b. Ptr b -> Int -> WGPUBindGroup -> IO ())
-> (Ptr WGPUBindGroup -> IO WGPUBindGroup)
-> (Ptr WGPUBindGroup -> WGPUBindGroup -> IO ())
-> Storable WGPUBindGroup
forall b. Ptr b -> Int -> IO WGPUBindGroup
forall b. Ptr b -> Int -> WGPUBindGroup -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUBindGroup -> WGPUBindGroup -> IO ()
$cpoke :: Ptr WGPUBindGroup -> WGPUBindGroup -> IO ()
peek :: Ptr WGPUBindGroup -> IO WGPUBindGroup
$cpeek :: Ptr WGPUBindGroup -> IO WGPUBindGroup
pokeByteOff :: Ptr b -> Int -> WGPUBindGroup -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUBindGroup -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUBindGroup
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUBindGroup
pokeElemOff :: Ptr WGPUBindGroup -> Int -> WGPUBindGroup -> IO ()
$cpokeElemOff :: Ptr WGPUBindGroup -> Int -> WGPUBindGroup -> IO ()
peekElemOff :: Ptr WGPUBindGroup -> Int -> IO WGPUBindGroup
$cpeekElemOff :: Ptr WGPUBindGroup -> Int -> IO WGPUBindGroup
alignment :: WGPUBindGroup -> Int
$calignment :: WGPUBindGroup -> Int
sizeOf :: WGPUBindGroup -> Int
$csizeOf :: WGPUBindGroup -> Int
Storable)

newtype WGPUBindGroupLayout = WGPUBindGroupLayout (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUBindGroupLayout
Ptr b -> Int -> WGPUBindGroupLayout -> IO ()
Ptr WGPUBindGroupLayout -> IO WGPUBindGroupLayout
Ptr WGPUBindGroupLayout -> Int -> IO WGPUBindGroupLayout
Ptr WGPUBindGroupLayout -> Int -> WGPUBindGroupLayout -> IO ()
Ptr WGPUBindGroupLayout -> WGPUBindGroupLayout -> IO ()
WGPUBindGroupLayout -> Int
(WGPUBindGroupLayout -> Int)
-> (WGPUBindGroupLayout -> Int)
-> (Ptr WGPUBindGroupLayout -> Int -> IO WGPUBindGroupLayout)
-> (Ptr WGPUBindGroupLayout -> Int -> WGPUBindGroupLayout -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUBindGroupLayout)
-> (forall b. Ptr b -> Int -> WGPUBindGroupLayout -> IO ())
-> (Ptr WGPUBindGroupLayout -> IO WGPUBindGroupLayout)
-> (Ptr WGPUBindGroupLayout -> WGPUBindGroupLayout -> IO ())
-> Storable WGPUBindGroupLayout
forall b. Ptr b -> Int -> IO WGPUBindGroupLayout
forall b. Ptr b -> Int -> WGPUBindGroupLayout -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUBindGroupLayout -> WGPUBindGroupLayout -> IO ()
$cpoke :: Ptr WGPUBindGroupLayout -> WGPUBindGroupLayout -> IO ()
peek :: Ptr WGPUBindGroupLayout -> IO WGPUBindGroupLayout
$cpeek :: Ptr WGPUBindGroupLayout -> IO WGPUBindGroupLayout
pokeByteOff :: Ptr b -> Int -> WGPUBindGroupLayout -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUBindGroupLayout -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUBindGroupLayout
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUBindGroupLayout
pokeElemOff :: Ptr WGPUBindGroupLayout -> Int -> WGPUBindGroupLayout -> IO ()
$cpokeElemOff :: Ptr WGPUBindGroupLayout -> Int -> WGPUBindGroupLayout -> IO ()
peekElemOff :: Ptr WGPUBindGroupLayout -> Int -> IO WGPUBindGroupLayout
$cpeekElemOff :: Ptr WGPUBindGroupLayout -> Int -> IO WGPUBindGroupLayout
alignment :: WGPUBindGroupLayout -> Int
$calignment :: WGPUBindGroupLayout -> Int
sizeOf :: WGPUBindGroupLayout -> Int
$csizeOf :: WGPUBindGroupLayout -> Int
Storable)

newtype WGPUBuffer = WGPUBuffer (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUBuffer
Ptr b -> Int -> WGPUBuffer -> IO ()
Ptr WGPUBuffer -> IO WGPUBuffer
Ptr WGPUBuffer -> Int -> IO WGPUBuffer
Ptr WGPUBuffer -> Int -> WGPUBuffer -> IO ()
Ptr WGPUBuffer -> WGPUBuffer -> IO ()
WGPUBuffer -> Int
(WGPUBuffer -> Int)
-> (WGPUBuffer -> Int)
-> (Ptr WGPUBuffer -> Int -> IO WGPUBuffer)
-> (Ptr WGPUBuffer -> Int -> WGPUBuffer -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUBuffer)
-> (forall b. Ptr b -> Int -> WGPUBuffer -> IO ())
-> (Ptr WGPUBuffer -> IO WGPUBuffer)
-> (Ptr WGPUBuffer -> WGPUBuffer -> IO ())
-> Storable WGPUBuffer
forall b. Ptr b -> Int -> IO WGPUBuffer
forall b. Ptr b -> Int -> WGPUBuffer -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUBuffer -> WGPUBuffer -> IO ()
$cpoke :: Ptr WGPUBuffer -> WGPUBuffer -> IO ()
peek :: Ptr WGPUBuffer -> IO WGPUBuffer
$cpeek :: Ptr WGPUBuffer -> IO WGPUBuffer
pokeByteOff :: Ptr b -> Int -> WGPUBuffer -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUBuffer -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUBuffer
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUBuffer
pokeElemOff :: Ptr WGPUBuffer -> Int -> WGPUBuffer -> IO ()
$cpokeElemOff :: Ptr WGPUBuffer -> Int -> WGPUBuffer -> IO ()
peekElemOff :: Ptr WGPUBuffer -> Int -> IO WGPUBuffer
$cpeekElemOff :: Ptr WGPUBuffer -> Int -> IO WGPUBuffer
alignment :: WGPUBuffer -> Int
$calignment :: WGPUBuffer -> Int
sizeOf :: WGPUBuffer -> Int
$csizeOf :: WGPUBuffer -> Int
Storable)

newtype WGPUCommandBuffer = WGPUCommandBuffer (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUCommandBuffer
Ptr b -> Int -> WGPUCommandBuffer -> IO ()
Ptr WGPUCommandBuffer -> IO WGPUCommandBuffer
Ptr WGPUCommandBuffer -> Int -> IO WGPUCommandBuffer
Ptr WGPUCommandBuffer -> Int -> WGPUCommandBuffer -> IO ()
Ptr WGPUCommandBuffer -> WGPUCommandBuffer -> IO ()
WGPUCommandBuffer -> Int
(WGPUCommandBuffer -> Int)
-> (WGPUCommandBuffer -> Int)
-> (Ptr WGPUCommandBuffer -> Int -> IO WGPUCommandBuffer)
-> (Ptr WGPUCommandBuffer -> Int -> WGPUCommandBuffer -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUCommandBuffer)
-> (forall b. Ptr b -> Int -> WGPUCommandBuffer -> IO ())
-> (Ptr WGPUCommandBuffer -> IO WGPUCommandBuffer)
-> (Ptr WGPUCommandBuffer -> WGPUCommandBuffer -> IO ())
-> Storable WGPUCommandBuffer
forall b. Ptr b -> Int -> IO WGPUCommandBuffer
forall b. Ptr b -> Int -> WGPUCommandBuffer -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUCommandBuffer -> WGPUCommandBuffer -> IO ()
$cpoke :: Ptr WGPUCommandBuffer -> WGPUCommandBuffer -> IO ()
peek :: Ptr WGPUCommandBuffer -> IO WGPUCommandBuffer
$cpeek :: Ptr WGPUCommandBuffer -> IO WGPUCommandBuffer
pokeByteOff :: Ptr b -> Int -> WGPUCommandBuffer -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUCommandBuffer -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUCommandBuffer
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUCommandBuffer
pokeElemOff :: Ptr WGPUCommandBuffer -> Int -> WGPUCommandBuffer -> IO ()
$cpokeElemOff :: Ptr WGPUCommandBuffer -> Int -> WGPUCommandBuffer -> IO ()
peekElemOff :: Ptr WGPUCommandBuffer -> Int -> IO WGPUCommandBuffer
$cpeekElemOff :: Ptr WGPUCommandBuffer -> Int -> IO WGPUCommandBuffer
alignment :: WGPUCommandBuffer -> Int
$calignment :: WGPUCommandBuffer -> Int
sizeOf :: WGPUCommandBuffer -> Int
$csizeOf :: WGPUCommandBuffer -> Int
Storable)

newtype WGPUCommandEncoder = WGPUCommandEncoder (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUCommandEncoder
Ptr b -> Int -> WGPUCommandEncoder -> IO ()
Ptr WGPUCommandEncoder -> IO WGPUCommandEncoder
Ptr WGPUCommandEncoder -> Int -> IO WGPUCommandEncoder
Ptr WGPUCommandEncoder -> Int -> WGPUCommandEncoder -> IO ()
Ptr WGPUCommandEncoder -> WGPUCommandEncoder -> IO ()
WGPUCommandEncoder -> Int
(WGPUCommandEncoder -> Int)
-> (WGPUCommandEncoder -> Int)
-> (Ptr WGPUCommandEncoder -> Int -> IO WGPUCommandEncoder)
-> (Ptr WGPUCommandEncoder -> Int -> WGPUCommandEncoder -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUCommandEncoder)
-> (forall b. Ptr b -> Int -> WGPUCommandEncoder -> IO ())
-> (Ptr WGPUCommandEncoder -> IO WGPUCommandEncoder)
-> (Ptr WGPUCommandEncoder -> WGPUCommandEncoder -> IO ())
-> Storable WGPUCommandEncoder
forall b. Ptr b -> Int -> IO WGPUCommandEncoder
forall b. Ptr b -> Int -> WGPUCommandEncoder -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUCommandEncoder -> WGPUCommandEncoder -> IO ()
$cpoke :: Ptr WGPUCommandEncoder -> WGPUCommandEncoder -> IO ()
peek :: Ptr WGPUCommandEncoder -> IO WGPUCommandEncoder
$cpeek :: Ptr WGPUCommandEncoder -> IO WGPUCommandEncoder
pokeByteOff :: Ptr b -> Int -> WGPUCommandEncoder -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUCommandEncoder -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUCommandEncoder
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUCommandEncoder
pokeElemOff :: Ptr WGPUCommandEncoder -> Int -> WGPUCommandEncoder -> IO ()
$cpokeElemOff :: Ptr WGPUCommandEncoder -> Int -> WGPUCommandEncoder -> IO ()
peekElemOff :: Ptr WGPUCommandEncoder -> Int -> IO WGPUCommandEncoder
$cpeekElemOff :: Ptr WGPUCommandEncoder -> Int -> IO WGPUCommandEncoder
alignment :: WGPUCommandEncoder -> Int
$calignment :: WGPUCommandEncoder -> Int
sizeOf :: WGPUCommandEncoder -> Int
$csizeOf :: WGPUCommandEncoder -> Int
Storable)

newtype WGPUComputePassEncoder = WGPUComputePassEncoder (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUComputePassEncoder
Ptr b -> Int -> WGPUComputePassEncoder -> IO ()
Ptr WGPUComputePassEncoder -> IO WGPUComputePassEncoder
Ptr WGPUComputePassEncoder -> Int -> IO WGPUComputePassEncoder
Ptr WGPUComputePassEncoder
-> Int -> WGPUComputePassEncoder -> IO ()
Ptr WGPUComputePassEncoder -> WGPUComputePassEncoder -> IO ()
WGPUComputePassEncoder -> Int
(WGPUComputePassEncoder -> Int)
-> (WGPUComputePassEncoder -> Int)
-> (Ptr WGPUComputePassEncoder -> Int -> IO WGPUComputePassEncoder)
-> (Ptr WGPUComputePassEncoder
    -> Int -> WGPUComputePassEncoder -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUComputePassEncoder)
-> (forall b. Ptr b -> Int -> WGPUComputePassEncoder -> IO ())
-> (Ptr WGPUComputePassEncoder -> IO WGPUComputePassEncoder)
-> (Ptr WGPUComputePassEncoder -> WGPUComputePassEncoder -> IO ())
-> Storable WGPUComputePassEncoder
forall b. Ptr b -> Int -> IO WGPUComputePassEncoder
forall b. Ptr b -> Int -> WGPUComputePassEncoder -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUComputePassEncoder -> WGPUComputePassEncoder -> IO ()
$cpoke :: Ptr WGPUComputePassEncoder -> WGPUComputePassEncoder -> IO ()
peek :: Ptr WGPUComputePassEncoder -> IO WGPUComputePassEncoder
$cpeek :: Ptr WGPUComputePassEncoder -> IO WGPUComputePassEncoder
pokeByteOff :: Ptr b -> Int -> WGPUComputePassEncoder -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUComputePassEncoder -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUComputePassEncoder
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUComputePassEncoder
pokeElemOff :: Ptr WGPUComputePassEncoder
-> Int -> WGPUComputePassEncoder -> IO ()
$cpokeElemOff :: Ptr WGPUComputePassEncoder
-> Int -> WGPUComputePassEncoder -> IO ()
peekElemOff :: Ptr WGPUComputePassEncoder -> Int -> IO WGPUComputePassEncoder
$cpeekElemOff :: Ptr WGPUComputePassEncoder -> Int -> IO WGPUComputePassEncoder
alignment :: WGPUComputePassEncoder -> Int
$calignment :: WGPUComputePassEncoder -> Int
sizeOf :: WGPUComputePassEncoder -> Int
$csizeOf :: WGPUComputePassEncoder -> Int
Storable)

newtype WGPUComputePipeline = WGPUComputePipeline (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUComputePipeline
Ptr b -> Int -> WGPUComputePipeline -> IO ()
Ptr WGPUComputePipeline -> IO WGPUComputePipeline
Ptr WGPUComputePipeline -> Int -> IO WGPUComputePipeline
Ptr WGPUComputePipeline -> Int -> WGPUComputePipeline -> IO ()
Ptr WGPUComputePipeline -> WGPUComputePipeline -> IO ()
WGPUComputePipeline -> Int
(WGPUComputePipeline -> Int)
-> (WGPUComputePipeline -> Int)
-> (Ptr WGPUComputePipeline -> Int -> IO WGPUComputePipeline)
-> (Ptr WGPUComputePipeline -> Int -> WGPUComputePipeline -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUComputePipeline)
-> (forall b. Ptr b -> Int -> WGPUComputePipeline -> IO ())
-> (Ptr WGPUComputePipeline -> IO WGPUComputePipeline)
-> (Ptr WGPUComputePipeline -> WGPUComputePipeline -> IO ())
-> Storable WGPUComputePipeline
forall b. Ptr b -> Int -> IO WGPUComputePipeline
forall b. Ptr b -> Int -> WGPUComputePipeline -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUComputePipeline -> WGPUComputePipeline -> IO ()
$cpoke :: Ptr WGPUComputePipeline -> WGPUComputePipeline -> IO ()
peek :: Ptr WGPUComputePipeline -> IO WGPUComputePipeline
$cpeek :: Ptr WGPUComputePipeline -> IO WGPUComputePipeline
pokeByteOff :: Ptr b -> Int -> WGPUComputePipeline -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUComputePipeline -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUComputePipeline
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUComputePipeline
pokeElemOff :: Ptr WGPUComputePipeline -> Int -> WGPUComputePipeline -> IO ()
$cpokeElemOff :: Ptr WGPUComputePipeline -> Int -> WGPUComputePipeline -> IO ()
peekElemOff :: Ptr WGPUComputePipeline -> Int -> IO WGPUComputePipeline
$cpeekElemOff :: Ptr WGPUComputePipeline -> Int -> IO WGPUComputePipeline
alignment :: WGPUComputePipeline -> Int
$calignment :: WGPUComputePipeline -> Int
sizeOf :: WGPUComputePipeline -> Int
$csizeOf :: WGPUComputePipeline -> Int
Storable)

newtype WGPUDevice = WGPUDevice (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUDevice
Ptr b -> Int -> WGPUDevice -> IO ()
Ptr WGPUDevice -> IO WGPUDevice
Ptr WGPUDevice -> Int -> IO WGPUDevice
Ptr WGPUDevice -> Int -> WGPUDevice -> IO ()
Ptr WGPUDevice -> WGPUDevice -> IO ()
WGPUDevice -> Int
(WGPUDevice -> Int)
-> (WGPUDevice -> Int)
-> (Ptr WGPUDevice -> Int -> IO WGPUDevice)
-> (Ptr WGPUDevice -> Int -> WGPUDevice -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUDevice)
-> (forall b. Ptr b -> Int -> WGPUDevice -> IO ())
-> (Ptr WGPUDevice -> IO WGPUDevice)
-> (Ptr WGPUDevice -> WGPUDevice -> IO ())
-> Storable WGPUDevice
forall b. Ptr b -> Int -> IO WGPUDevice
forall b. Ptr b -> Int -> WGPUDevice -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUDevice -> WGPUDevice -> IO ()
$cpoke :: Ptr WGPUDevice -> WGPUDevice -> IO ()
peek :: Ptr WGPUDevice -> IO WGPUDevice
$cpeek :: Ptr WGPUDevice -> IO WGPUDevice
pokeByteOff :: Ptr b -> Int -> WGPUDevice -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUDevice -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUDevice
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUDevice
pokeElemOff :: Ptr WGPUDevice -> Int -> WGPUDevice -> IO ()
$cpokeElemOff :: Ptr WGPUDevice -> Int -> WGPUDevice -> IO ()
peekElemOff :: Ptr WGPUDevice -> Int -> IO WGPUDevice
$cpeekElemOff :: Ptr WGPUDevice -> Int -> IO WGPUDevice
alignment :: WGPUDevice -> Int
$calignment :: WGPUDevice -> Int
sizeOf :: WGPUDevice -> Int
$csizeOf :: WGPUDevice -> Int
Storable)

newtype WGPUInstance = WGPUInstance (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUInstance
Ptr b -> Int -> WGPUInstance -> IO ()
Ptr WGPUInstance -> IO WGPUInstance
Ptr WGPUInstance -> Int -> IO WGPUInstance
Ptr WGPUInstance -> Int -> WGPUInstance -> IO ()
Ptr WGPUInstance -> WGPUInstance -> IO ()
WGPUInstance -> Int
(WGPUInstance -> Int)
-> (WGPUInstance -> Int)
-> (Ptr WGPUInstance -> Int -> IO WGPUInstance)
-> (Ptr WGPUInstance -> Int -> WGPUInstance -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUInstance)
-> (forall b. Ptr b -> Int -> WGPUInstance -> IO ())
-> (Ptr WGPUInstance -> IO WGPUInstance)
-> (Ptr WGPUInstance -> WGPUInstance -> IO ())
-> Storable WGPUInstance
forall b. Ptr b -> Int -> IO WGPUInstance
forall b. Ptr b -> Int -> WGPUInstance -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUInstance -> WGPUInstance -> IO ()
$cpoke :: Ptr WGPUInstance -> WGPUInstance -> IO ()
peek :: Ptr WGPUInstance -> IO WGPUInstance
$cpeek :: Ptr WGPUInstance -> IO WGPUInstance
pokeByteOff :: Ptr b -> Int -> WGPUInstance -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUInstance -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUInstance
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUInstance
pokeElemOff :: Ptr WGPUInstance -> Int -> WGPUInstance -> IO ()
$cpokeElemOff :: Ptr WGPUInstance -> Int -> WGPUInstance -> IO ()
peekElemOff :: Ptr WGPUInstance -> Int -> IO WGPUInstance
$cpeekElemOff :: Ptr WGPUInstance -> Int -> IO WGPUInstance
alignment :: WGPUInstance -> Int
$calignment :: WGPUInstance -> Int
sizeOf :: WGPUInstance -> Int
$csizeOf :: WGPUInstance -> Int
Storable)

newtype WGPUPipelineLayout = WGPUPipelineLayout (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUPipelineLayout
Ptr b -> Int -> WGPUPipelineLayout -> IO ()
Ptr WGPUPipelineLayout -> IO WGPUPipelineLayout
Ptr WGPUPipelineLayout -> Int -> IO WGPUPipelineLayout
Ptr WGPUPipelineLayout -> Int -> WGPUPipelineLayout -> IO ()
Ptr WGPUPipelineLayout -> WGPUPipelineLayout -> IO ()
WGPUPipelineLayout -> Int
(WGPUPipelineLayout -> Int)
-> (WGPUPipelineLayout -> Int)
-> (Ptr WGPUPipelineLayout -> Int -> IO WGPUPipelineLayout)
-> (Ptr WGPUPipelineLayout -> Int -> WGPUPipelineLayout -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUPipelineLayout)
-> (forall b. Ptr b -> Int -> WGPUPipelineLayout -> IO ())
-> (Ptr WGPUPipelineLayout -> IO WGPUPipelineLayout)
-> (Ptr WGPUPipelineLayout -> WGPUPipelineLayout -> IO ())
-> Storable WGPUPipelineLayout
forall b. Ptr b -> Int -> IO WGPUPipelineLayout
forall b. Ptr b -> Int -> WGPUPipelineLayout -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUPipelineLayout -> WGPUPipelineLayout -> IO ()
$cpoke :: Ptr WGPUPipelineLayout -> WGPUPipelineLayout -> IO ()
peek :: Ptr WGPUPipelineLayout -> IO WGPUPipelineLayout
$cpeek :: Ptr WGPUPipelineLayout -> IO WGPUPipelineLayout
pokeByteOff :: Ptr b -> Int -> WGPUPipelineLayout -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUPipelineLayout -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUPipelineLayout
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUPipelineLayout
pokeElemOff :: Ptr WGPUPipelineLayout -> Int -> WGPUPipelineLayout -> IO ()
$cpokeElemOff :: Ptr WGPUPipelineLayout -> Int -> WGPUPipelineLayout -> IO ()
peekElemOff :: Ptr WGPUPipelineLayout -> Int -> IO WGPUPipelineLayout
$cpeekElemOff :: Ptr WGPUPipelineLayout -> Int -> IO WGPUPipelineLayout
alignment :: WGPUPipelineLayout -> Int
$calignment :: WGPUPipelineLayout -> Int
sizeOf :: WGPUPipelineLayout -> Int
$csizeOf :: WGPUPipelineLayout -> Int
Storable)

newtype WGPUQuerySet = WGPUQuerySet (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUQuerySet
Ptr b -> Int -> WGPUQuerySet -> IO ()
Ptr WGPUQuerySet -> IO WGPUQuerySet
Ptr WGPUQuerySet -> Int -> IO WGPUQuerySet
Ptr WGPUQuerySet -> Int -> WGPUQuerySet -> IO ()
Ptr WGPUQuerySet -> WGPUQuerySet -> IO ()
WGPUQuerySet -> Int
(WGPUQuerySet -> Int)
-> (WGPUQuerySet -> Int)
-> (Ptr WGPUQuerySet -> Int -> IO WGPUQuerySet)
-> (Ptr WGPUQuerySet -> Int -> WGPUQuerySet -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUQuerySet)
-> (forall b. Ptr b -> Int -> WGPUQuerySet -> IO ())
-> (Ptr WGPUQuerySet -> IO WGPUQuerySet)
-> (Ptr WGPUQuerySet -> WGPUQuerySet -> IO ())
-> Storable WGPUQuerySet
forall b. Ptr b -> Int -> IO WGPUQuerySet
forall b. Ptr b -> Int -> WGPUQuerySet -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUQuerySet -> WGPUQuerySet -> IO ()
$cpoke :: Ptr WGPUQuerySet -> WGPUQuerySet -> IO ()
peek :: Ptr WGPUQuerySet -> IO WGPUQuerySet
$cpeek :: Ptr WGPUQuerySet -> IO WGPUQuerySet
pokeByteOff :: Ptr b -> Int -> WGPUQuerySet -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUQuerySet -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUQuerySet
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUQuerySet
pokeElemOff :: Ptr WGPUQuerySet -> Int -> WGPUQuerySet -> IO ()
$cpokeElemOff :: Ptr WGPUQuerySet -> Int -> WGPUQuerySet -> IO ()
peekElemOff :: Ptr WGPUQuerySet -> Int -> IO WGPUQuerySet
$cpeekElemOff :: Ptr WGPUQuerySet -> Int -> IO WGPUQuerySet
alignment :: WGPUQuerySet -> Int
$calignment :: WGPUQuerySet -> Int
sizeOf :: WGPUQuerySet -> Int
$csizeOf :: WGPUQuerySet -> Int
Storable)

newtype WGPUQueue = WGPUQueue (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUQueue
Ptr b -> Int -> WGPUQueue -> IO ()
Ptr WGPUQueue -> IO WGPUQueue
Ptr WGPUQueue -> Int -> IO WGPUQueue
Ptr WGPUQueue -> Int -> WGPUQueue -> IO ()
Ptr WGPUQueue -> WGPUQueue -> IO ()
WGPUQueue -> Int
(WGPUQueue -> Int)
-> (WGPUQueue -> Int)
-> (Ptr WGPUQueue -> Int -> IO WGPUQueue)
-> (Ptr WGPUQueue -> Int -> WGPUQueue -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUQueue)
-> (forall b. Ptr b -> Int -> WGPUQueue -> IO ())
-> (Ptr WGPUQueue -> IO WGPUQueue)
-> (Ptr WGPUQueue -> WGPUQueue -> IO ())
-> Storable WGPUQueue
forall b. Ptr b -> Int -> IO WGPUQueue
forall b. Ptr b -> Int -> WGPUQueue -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUQueue -> WGPUQueue -> IO ()
$cpoke :: Ptr WGPUQueue -> WGPUQueue -> IO ()
peek :: Ptr WGPUQueue -> IO WGPUQueue
$cpeek :: Ptr WGPUQueue -> IO WGPUQueue
pokeByteOff :: Ptr b -> Int -> WGPUQueue -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUQueue -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUQueue
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUQueue
pokeElemOff :: Ptr WGPUQueue -> Int -> WGPUQueue -> IO ()
$cpokeElemOff :: Ptr WGPUQueue -> Int -> WGPUQueue -> IO ()
peekElemOff :: Ptr WGPUQueue -> Int -> IO WGPUQueue
$cpeekElemOff :: Ptr WGPUQueue -> Int -> IO WGPUQueue
alignment :: WGPUQueue -> Int
$calignment :: WGPUQueue -> Int
sizeOf :: WGPUQueue -> Int
$csizeOf :: WGPUQueue -> Int
Storable)

newtype WGPURenderBundle = WGPURenderBundle (Ptr ())
  deriving (Ptr b -> Int -> IO WGPURenderBundle
Ptr b -> Int -> WGPURenderBundle -> IO ()
Ptr WGPURenderBundle -> IO WGPURenderBundle
Ptr WGPURenderBundle -> Int -> IO WGPURenderBundle
Ptr WGPURenderBundle -> Int -> WGPURenderBundle -> IO ()
Ptr WGPURenderBundle -> WGPURenderBundle -> IO ()
WGPURenderBundle -> Int
(WGPURenderBundle -> Int)
-> (WGPURenderBundle -> Int)
-> (Ptr WGPURenderBundle -> Int -> IO WGPURenderBundle)
-> (Ptr WGPURenderBundle -> Int -> WGPURenderBundle -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPURenderBundle)
-> (forall b. Ptr b -> Int -> WGPURenderBundle -> IO ())
-> (Ptr WGPURenderBundle -> IO WGPURenderBundle)
-> (Ptr WGPURenderBundle -> WGPURenderBundle -> IO ())
-> Storable WGPURenderBundle
forall b. Ptr b -> Int -> IO WGPURenderBundle
forall b. Ptr b -> Int -> WGPURenderBundle -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPURenderBundle -> WGPURenderBundle -> IO ()
$cpoke :: Ptr WGPURenderBundle -> WGPURenderBundle -> IO ()
peek :: Ptr WGPURenderBundle -> IO WGPURenderBundle
$cpeek :: Ptr WGPURenderBundle -> IO WGPURenderBundle
pokeByteOff :: Ptr b -> Int -> WGPURenderBundle -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPURenderBundle -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPURenderBundle
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPURenderBundle
pokeElemOff :: Ptr WGPURenderBundle -> Int -> WGPURenderBundle -> IO ()
$cpokeElemOff :: Ptr WGPURenderBundle -> Int -> WGPURenderBundle -> IO ()
peekElemOff :: Ptr WGPURenderBundle -> Int -> IO WGPURenderBundle
$cpeekElemOff :: Ptr WGPURenderBundle -> Int -> IO WGPURenderBundle
alignment :: WGPURenderBundle -> Int
$calignment :: WGPURenderBundle -> Int
sizeOf :: WGPURenderBundle -> Int
$csizeOf :: WGPURenderBundle -> Int
Storable)

newtype WGPURenderBundleEncoder = WGPURenderBundleEncoder (Ptr ())
  deriving (Ptr b -> Int -> IO WGPURenderBundleEncoder
Ptr b -> Int -> WGPURenderBundleEncoder -> IO ()
Ptr WGPURenderBundleEncoder -> IO WGPURenderBundleEncoder
Ptr WGPURenderBundleEncoder -> Int -> IO WGPURenderBundleEncoder
Ptr WGPURenderBundleEncoder
-> Int -> WGPURenderBundleEncoder -> IO ()
Ptr WGPURenderBundleEncoder -> WGPURenderBundleEncoder -> IO ()
WGPURenderBundleEncoder -> Int
(WGPURenderBundleEncoder -> Int)
-> (WGPURenderBundleEncoder -> Int)
-> (Ptr WGPURenderBundleEncoder
    -> Int -> IO WGPURenderBundleEncoder)
-> (Ptr WGPURenderBundleEncoder
    -> Int -> WGPURenderBundleEncoder -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPURenderBundleEncoder)
-> (forall b. Ptr b -> Int -> WGPURenderBundleEncoder -> IO ())
-> (Ptr WGPURenderBundleEncoder -> IO WGPURenderBundleEncoder)
-> (Ptr WGPURenderBundleEncoder
    -> WGPURenderBundleEncoder -> IO ())
-> Storable WGPURenderBundleEncoder
forall b. Ptr b -> Int -> IO WGPURenderBundleEncoder
forall b. Ptr b -> Int -> WGPURenderBundleEncoder -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPURenderBundleEncoder -> WGPURenderBundleEncoder -> IO ()
$cpoke :: Ptr WGPURenderBundleEncoder -> WGPURenderBundleEncoder -> IO ()
peek :: Ptr WGPURenderBundleEncoder -> IO WGPURenderBundleEncoder
$cpeek :: Ptr WGPURenderBundleEncoder -> IO WGPURenderBundleEncoder
pokeByteOff :: Ptr b -> Int -> WGPURenderBundleEncoder -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPURenderBundleEncoder -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPURenderBundleEncoder
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPURenderBundleEncoder
pokeElemOff :: Ptr WGPURenderBundleEncoder
-> Int -> WGPURenderBundleEncoder -> IO ()
$cpokeElemOff :: Ptr WGPURenderBundleEncoder
-> Int -> WGPURenderBundleEncoder -> IO ()
peekElemOff :: Ptr WGPURenderBundleEncoder -> Int -> IO WGPURenderBundleEncoder
$cpeekElemOff :: Ptr WGPURenderBundleEncoder -> Int -> IO WGPURenderBundleEncoder
alignment :: WGPURenderBundleEncoder -> Int
$calignment :: WGPURenderBundleEncoder -> Int
sizeOf :: WGPURenderBundleEncoder -> Int
$csizeOf :: WGPURenderBundleEncoder -> Int
Storable)

newtype WGPURenderPassEncoder = WGPURenderPassEncoder (Ptr ())
  deriving (Ptr b -> Int -> IO WGPURenderPassEncoder
Ptr b -> Int -> WGPURenderPassEncoder -> IO ()
Ptr WGPURenderPassEncoder -> IO WGPURenderPassEncoder
Ptr WGPURenderPassEncoder -> Int -> IO WGPURenderPassEncoder
Ptr WGPURenderPassEncoder -> Int -> WGPURenderPassEncoder -> IO ()
Ptr WGPURenderPassEncoder -> WGPURenderPassEncoder -> IO ()
WGPURenderPassEncoder -> Int
(WGPURenderPassEncoder -> Int)
-> (WGPURenderPassEncoder -> Int)
-> (Ptr WGPURenderPassEncoder -> Int -> IO WGPURenderPassEncoder)
-> (Ptr WGPURenderPassEncoder
    -> Int -> WGPURenderPassEncoder -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPURenderPassEncoder)
-> (forall b. Ptr b -> Int -> WGPURenderPassEncoder -> IO ())
-> (Ptr WGPURenderPassEncoder -> IO WGPURenderPassEncoder)
-> (Ptr WGPURenderPassEncoder -> WGPURenderPassEncoder -> IO ())
-> Storable WGPURenderPassEncoder
forall b. Ptr b -> Int -> IO WGPURenderPassEncoder
forall b. Ptr b -> Int -> WGPURenderPassEncoder -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPURenderPassEncoder -> WGPURenderPassEncoder -> IO ()
$cpoke :: Ptr WGPURenderPassEncoder -> WGPURenderPassEncoder -> IO ()
peek :: Ptr WGPURenderPassEncoder -> IO WGPURenderPassEncoder
$cpeek :: Ptr WGPURenderPassEncoder -> IO WGPURenderPassEncoder
pokeByteOff :: Ptr b -> Int -> WGPURenderPassEncoder -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPURenderPassEncoder -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPURenderPassEncoder
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPURenderPassEncoder
pokeElemOff :: Ptr WGPURenderPassEncoder -> Int -> WGPURenderPassEncoder -> IO ()
$cpokeElemOff :: Ptr WGPURenderPassEncoder -> Int -> WGPURenderPassEncoder -> IO ()
peekElemOff :: Ptr WGPURenderPassEncoder -> Int -> IO WGPURenderPassEncoder
$cpeekElemOff :: Ptr WGPURenderPassEncoder -> Int -> IO WGPURenderPassEncoder
alignment :: WGPURenderPassEncoder -> Int
$calignment :: WGPURenderPassEncoder -> Int
sizeOf :: WGPURenderPassEncoder -> Int
$csizeOf :: WGPURenderPassEncoder -> Int
Storable)

newtype WGPURenderPipeline = WGPURenderPipeline (Ptr ())
  deriving (Ptr b -> Int -> IO WGPURenderPipeline
Ptr b -> Int -> WGPURenderPipeline -> IO ()
Ptr WGPURenderPipeline -> IO WGPURenderPipeline
Ptr WGPURenderPipeline -> Int -> IO WGPURenderPipeline
Ptr WGPURenderPipeline -> Int -> WGPURenderPipeline -> IO ()
Ptr WGPURenderPipeline -> WGPURenderPipeline -> IO ()
WGPURenderPipeline -> Int
(WGPURenderPipeline -> Int)
-> (WGPURenderPipeline -> Int)
-> (Ptr WGPURenderPipeline -> Int -> IO WGPURenderPipeline)
-> (Ptr WGPURenderPipeline -> Int -> WGPURenderPipeline -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPURenderPipeline)
-> (forall b. Ptr b -> Int -> WGPURenderPipeline -> IO ())
-> (Ptr WGPURenderPipeline -> IO WGPURenderPipeline)
-> (Ptr WGPURenderPipeline -> WGPURenderPipeline -> IO ())
-> Storable WGPURenderPipeline
forall b. Ptr b -> Int -> IO WGPURenderPipeline
forall b. Ptr b -> Int -> WGPURenderPipeline -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPURenderPipeline -> WGPURenderPipeline -> IO ()
$cpoke :: Ptr WGPURenderPipeline -> WGPURenderPipeline -> IO ()
peek :: Ptr WGPURenderPipeline -> IO WGPURenderPipeline
$cpeek :: Ptr WGPURenderPipeline -> IO WGPURenderPipeline
pokeByteOff :: Ptr b -> Int -> WGPURenderPipeline -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPURenderPipeline -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPURenderPipeline
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPURenderPipeline
pokeElemOff :: Ptr WGPURenderPipeline -> Int -> WGPURenderPipeline -> IO ()
$cpokeElemOff :: Ptr WGPURenderPipeline -> Int -> WGPURenderPipeline -> IO ()
peekElemOff :: Ptr WGPURenderPipeline -> Int -> IO WGPURenderPipeline
$cpeekElemOff :: Ptr WGPURenderPipeline -> Int -> IO WGPURenderPipeline
alignment :: WGPURenderPipeline -> Int
$calignment :: WGPURenderPipeline -> Int
sizeOf :: WGPURenderPipeline -> Int
$csizeOf :: WGPURenderPipeline -> Int
Storable)

newtype WGPUSampler = WGPUSampler (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUSampler
Ptr b -> Int -> WGPUSampler -> IO ()
Ptr WGPUSampler -> IO WGPUSampler
Ptr WGPUSampler -> Int -> IO WGPUSampler
Ptr WGPUSampler -> Int -> WGPUSampler -> IO ()
Ptr WGPUSampler -> WGPUSampler -> IO ()
WGPUSampler -> Int
(WGPUSampler -> Int)
-> (WGPUSampler -> Int)
-> (Ptr WGPUSampler -> Int -> IO WGPUSampler)
-> (Ptr WGPUSampler -> Int -> WGPUSampler -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUSampler)
-> (forall b. Ptr b -> Int -> WGPUSampler -> IO ())
-> (Ptr WGPUSampler -> IO WGPUSampler)
-> (Ptr WGPUSampler -> WGPUSampler -> IO ())
-> Storable WGPUSampler
forall b. Ptr b -> Int -> IO WGPUSampler
forall b. Ptr b -> Int -> WGPUSampler -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUSampler -> WGPUSampler -> IO ()
$cpoke :: Ptr WGPUSampler -> WGPUSampler -> IO ()
peek :: Ptr WGPUSampler -> IO WGPUSampler
$cpeek :: Ptr WGPUSampler -> IO WGPUSampler
pokeByteOff :: Ptr b -> Int -> WGPUSampler -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUSampler -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUSampler
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUSampler
pokeElemOff :: Ptr WGPUSampler -> Int -> WGPUSampler -> IO ()
$cpokeElemOff :: Ptr WGPUSampler -> Int -> WGPUSampler -> IO ()
peekElemOff :: Ptr WGPUSampler -> Int -> IO WGPUSampler
$cpeekElemOff :: Ptr WGPUSampler -> Int -> IO WGPUSampler
alignment :: WGPUSampler -> Int
$calignment :: WGPUSampler -> Int
sizeOf :: WGPUSampler -> Int
$csizeOf :: WGPUSampler -> Int
Storable)

newtype WGPUShaderModule = WGPUShaderModule (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUShaderModule
Ptr b -> Int -> WGPUShaderModule -> IO ()
Ptr WGPUShaderModule -> IO WGPUShaderModule
Ptr WGPUShaderModule -> Int -> IO WGPUShaderModule
Ptr WGPUShaderModule -> Int -> WGPUShaderModule -> IO ()
Ptr WGPUShaderModule -> WGPUShaderModule -> IO ()
WGPUShaderModule -> Int
(WGPUShaderModule -> Int)
-> (WGPUShaderModule -> Int)
-> (Ptr WGPUShaderModule -> Int -> IO WGPUShaderModule)
-> (Ptr WGPUShaderModule -> Int -> WGPUShaderModule -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUShaderModule)
-> (forall b. Ptr b -> Int -> WGPUShaderModule -> IO ())
-> (Ptr WGPUShaderModule -> IO WGPUShaderModule)
-> (Ptr WGPUShaderModule -> WGPUShaderModule -> IO ())
-> Storable WGPUShaderModule
forall b. Ptr b -> Int -> IO WGPUShaderModule
forall b. Ptr b -> Int -> WGPUShaderModule -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUShaderModule -> WGPUShaderModule -> IO ()
$cpoke :: Ptr WGPUShaderModule -> WGPUShaderModule -> IO ()
peek :: Ptr WGPUShaderModule -> IO WGPUShaderModule
$cpeek :: Ptr WGPUShaderModule -> IO WGPUShaderModule
pokeByteOff :: Ptr b -> Int -> WGPUShaderModule -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUShaderModule -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUShaderModule
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUShaderModule
pokeElemOff :: Ptr WGPUShaderModule -> Int -> WGPUShaderModule -> IO ()
$cpokeElemOff :: Ptr WGPUShaderModule -> Int -> WGPUShaderModule -> IO ()
peekElemOff :: Ptr WGPUShaderModule -> Int -> IO WGPUShaderModule
$cpeekElemOff :: Ptr WGPUShaderModule -> Int -> IO WGPUShaderModule
alignment :: WGPUShaderModule -> Int
$calignment :: WGPUShaderModule -> Int
sizeOf :: WGPUShaderModule -> Int
$csizeOf :: WGPUShaderModule -> Int
Storable)

newtype WGPUSurface = WGPUSurface (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUSurface
Ptr b -> Int -> WGPUSurface -> IO ()
Ptr WGPUSurface -> IO WGPUSurface
Ptr WGPUSurface -> Int -> IO WGPUSurface
Ptr WGPUSurface -> Int -> WGPUSurface -> IO ()
Ptr WGPUSurface -> WGPUSurface -> IO ()
WGPUSurface -> Int
(WGPUSurface -> Int)
-> (WGPUSurface -> Int)
-> (Ptr WGPUSurface -> Int -> IO WGPUSurface)
-> (Ptr WGPUSurface -> Int -> WGPUSurface -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUSurface)
-> (forall b. Ptr b -> Int -> WGPUSurface -> IO ())
-> (Ptr WGPUSurface -> IO WGPUSurface)
-> (Ptr WGPUSurface -> WGPUSurface -> IO ())
-> Storable WGPUSurface
forall b. Ptr b -> Int -> IO WGPUSurface
forall b. Ptr b -> Int -> WGPUSurface -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUSurface -> WGPUSurface -> IO ()
$cpoke :: Ptr WGPUSurface -> WGPUSurface -> IO ()
peek :: Ptr WGPUSurface -> IO WGPUSurface
$cpeek :: Ptr WGPUSurface -> IO WGPUSurface
pokeByteOff :: Ptr b -> Int -> WGPUSurface -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUSurface -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUSurface
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUSurface
pokeElemOff :: Ptr WGPUSurface -> Int -> WGPUSurface -> IO ()
$cpokeElemOff :: Ptr WGPUSurface -> Int -> WGPUSurface -> IO ()
peekElemOff :: Ptr WGPUSurface -> Int -> IO WGPUSurface
$cpeekElemOff :: Ptr WGPUSurface -> Int -> IO WGPUSurface
alignment :: WGPUSurface -> Int
$calignment :: WGPUSurface -> Int
sizeOf :: WGPUSurface -> Int
$csizeOf :: WGPUSurface -> Int
Storable)

newtype WGPUSwapChain = WGPUSwapChain (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUSwapChain
Ptr b -> Int -> WGPUSwapChain -> IO ()
Ptr WGPUSwapChain -> IO WGPUSwapChain
Ptr WGPUSwapChain -> Int -> IO WGPUSwapChain
Ptr WGPUSwapChain -> Int -> WGPUSwapChain -> IO ()
Ptr WGPUSwapChain -> WGPUSwapChain -> IO ()
WGPUSwapChain -> Int
(WGPUSwapChain -> Int)
-> (WGPUSwapChain -> Int)
-> (Ptr WGPUSwapChain -> Int -> IO WGPUSwapChain)
-> (Ptr WGPUSwapChain -> Int -> WGPUSwapChain -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUSwapChain)
-> (forall b. Ptr b -> Int -> WGPUSwapChain -> IO ())
-> (Ptr WGPUSwapChain -> IO WGPUSwapChain)
-> (Ptr WGPUSwapChain -> WGPUSwapChain -> IO ())
-> Storable WGPUSwapChain
forall b. Ptr b -> Int -> IO WGPUSwapChain
forall b. Ptr b -> Int -> WGPUSwapChain -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUSwapChain -> WGPUSwapChain -> IO ()
$cpoke :: Ptr WGPUSwapChain -> WGPUSwapChain -> IO ()
peek :: Ptr WGPUSwapChain -> IO WGPUSwapChain
$cpeek :: Ptr WGPUSwapChain -> IO WGPUSwapChain
pokeByteOff :: Ptr b -> Int -> WGPUSwapChain -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUSwapChain -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUSwapChain
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUSwapChain
pokeElemOff :: Ptr WGPUSwapChain -> Int -> WGPUSwapChain -> IO ()
$cpokeElemOff :: Ptr WGPUSwapChain -> Int -> WGPUSwapChain -> IO ()
peekElemOff :: Ptr WGPUSwapChain -> Int -> IO WGPUSwapChain
$cpeekElemOff :: Ptr WGPUSwapChain -> Int -> IO WGPUSwapChain
alignment :: WGPUSwapChain -> Int
$calignment :: WGPUSwapChain -> Int
sizeOf :: WGPUSwapChain -> Int
$csizeOf :: WGPUSwapChain -> Int
Storable)

newtype WGPUTexture = WGPUTexture (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUTexture
Ptr b -> Int -> WGPUTexture -> IO ()
Ptr WGPUTexture -> IO WGPUTexture
Ptr WGPUTexture -> Int -> IO WGPUTexture
Ptr WGPUTexture -> Int -> WGPUTexture -> IO ()
Ptr WGPUTexture -> WGPUTexture -> IO ()
WGPUTexture -> Int
(WGPUTexture -> Int)
-> (WGPUTexture -> Int)
-> (Ptr WGPUTexture -> Int -> IO WGPUTexture)
-> (Ptr WGPUTexture -> Int -> WGPUTexture -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUTexture)
-> (forall b. Ptr b -> Int -> WGPUTexture -> IO ())
-> (Ptr WGPUTexture -> IO WGPUTexture)
-> (Ptr WGPUTexture -> WGPUTexture -> IO ())
-> Storable WGPUTexture
forall b. Ptr b -> Int -> IO WGPUTexture
forall b. Ptr b -> Int -> WGPUTexture -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUTexture -> WGPUTexture -> IO ()
$cpoke :: Ptr WGPUTexture -> WGPUTexture -> IO ()
peek :: Ptr WGPUTexture -> IO WGPUTexture
$cpeek :: Ptr WGPUTexture -> IO WGPUTexture
pokeByteOff :: Ptr b -> Int -> WGPUTexture -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUTexture -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUTexture
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUTexture
pokeElemOff :: Ptr WGPUTexture -> Int -> WGPUTexture -> IO ()
$cpokeElemOff :: Ptr WGPUTexture -> Int -> WGPUTexture -> IO ()
peekElemOff :: Ptr WGPUTexture -> Int -> IO WGPUTexture
$cpeekElemOff :: Ptr WGPUTexture -> Int -> IO WGPUTexture
alignment :: WGPUTexture -> Int
$calignment :: WGPUTexture -> Int
sizeOf :: WGPUTexture -> Int
$csizeOf :: WGPUTexture -> Int
Storable)

newtype WGPUTextureView = WGPUTextureView (Ptr ())
  deriving (Ptr b -> Int -> IO WGPUTextureView
Ptr b -> Int -> WGPUTextureView -> IO ()
Ptr WGPUTextureView -> IO WGPUTextureView
Ptr WGPUTextureView -> Int -> IO WGPUTextureView
Ptr WGPUTextureView -> Int -> WGPUTextureView -> IO ()
Ptr WGPUTextureView -> WGPUTextureView -> IO ()
WGPUTextureView -> Int
(WGPUTextureView -> Int)
-> (WGPUTextureView -> Int)
-> (Ptr WGPUTextureView -> Int -> IO WGPUTextureView)
-> (Ptr WGPUTextureView -> Int -> WGPUTextureView -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUTextureView)
-> (forall b. Ptr b -> Int -> WGPUTextureView -> IO ())
-> (Ptr WGPUTextureView -> IO WGPUTextureView)
-> (Ptr WGPUTextureView -> WGPUTextureView -> IO ())
-> Storable WGPUTextureView
forall b. Ptr b -> Int -> IO WGPUTextureView
forall b. Ptr b -> Int -> WGPUTextureView -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr WGPUTextureView -> WGPUTextureView -> IO ()
$cpoke :: Ptr WGPUTextureView -> WGPUTextureView -> IO ()
peek :: Ptr WGPUTextureView -> IO WGPUTextureView
$cpeek :: Ptr WGPUTextureView -> IO WGPUTextureView
pokeByteOff :: Ptr b -> Int -> WGPUTextureView -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUTextureView -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUTextureView
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUTextureView
pokeElemOff :: Ptr WGPUTextureView -> Int -> WGPUTextureView -> IO ()
$cpokeElemOff :: Ptr WGPUTextureView -> Int -> WGPUTextureView -> IO ()
peekElemOff :: Ptr WGPUTextureView -> Int -> IO WGPUTextureView
$cpeekElemOff :: Ptr WGPUTextureView -> Int -> IO WGPUTextureView
alignment :: WGPUTextureView -> Int
$calignment :: WGPUTextureView -> Int
sizeOf :: WGPUTextureView -> Int
$csizeOf :: WGPUTextureView -> Int
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 ()
    )