{-# LINE 1 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE NoImplicitPrelude #-}

-- This file was generated by wgpu-raw-hs-codegen on:
--   2021-08-15T08:56:06.968390
-- Using wgpu-native git hash:
--   b10496e7eed9349f0fd541e6dfe5029cb436de74 wgpu-native (v0.9.2.2)

module WGPU.Raw.Generated.Struct.WGPUBindGroupEntry where



import Data.Word (Word16, Word32, Word64)
import Data.Int (Int32)
import Foreign
import Foreign.C.Types
import WGPU.Raw.Types
import Prelude (pure, ($!))


data WGPUBindGroupEntry = WGPUBindGroupEntry {
  WGPUBindGroupEntry -> Word32
binding :: Word32,
  WGPUBindGroupEntry -> WGPUBuffer
buffer :: WGPUBuffer,
  WGPUBindGroupEntry -> Word64
offset :: Word64,
  WGPUBindGroupEntry -> Word64
size :: Word64,
  WGPUBindGroupEntry -> WGPUSampler
sampler :: WGPUSampler,
  WGPUBindGroupEntry -> WGPUTextureView
textureView :: WGPUTextureView
}

instance Storable WGPUBindGroupEntry where
  sizeOf :: WGPUBindGroupEntry -> Int
sizeOf WGPUBindGroupEntry
_ = ((Int
48))
{-# LINE 33 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
  alignment = sizeOf
  peek :: Ptr WGPUBindGroupEntry -> IO WGPUBindGroupEntry
peek Ptr WGPUBindGroupEntry
ptr = do
    Word32
binding <- ((\Ptr WGPUBindGroupEntry
hsc_ptr -> Ptr WGPUBindGroupEntry -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr WGPUBindGroupEntry
hsc_ptr Int
0)) Ptr WGPUBindGroupEntry
ptr
{-# LINE 36 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    buffer <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr
{-# LINE 37 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    offset <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr
{-# LINE 38 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    size <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) ptr
{-# LINE 39 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    sampler <- ((\hsc_ptr -> peekByteOff hsc_ptr 32)) ptr
{-# LINE 40 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    textureView <- ((\hsc_ptr -> peekByteOff hsc_ptr 40)) ptr
{-# LINE 41 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    pure $! WGPUBindGroupEntry{..}
  poke :: Ptr WGPUBindGroupEntry -> WGPUBindGroupEntry -> IO ()
poke Ptr WGPUBindGroupEntry
ptr WGPUBindGroupEntry{Word32
Word64
WGPUTextureView
WGPUSampler
WGPUBuffer
textureView :: WGPUTextureView
sampler :: WGPUSampler
size :: Word64
offset :: Word64
buffer :: WGPUBuffer
binding :: Word32
textureView :: WGPUBindGroupEntry -> WGPUTextureView
sampler :: WGPUBindGroupEntry -> WGPUSampler
size :: WGPUBindGroupEntry -> Word64
offset :: WGPUBindGroupEntry -> Word64
buffer :: WGPUBindGroupEntry -> WGPUBuffer
binding :: WGPUBindGroupEntry -> Word32
..} = do
    ((\Ptr WGPUBindGroupEntry
hsc_ptr -> Ptr WGPUBindGroupEntry -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr WGPUBindGroupEntry
hsc_ptr Int
0)) Ptr WGPUBindGroupEntry
ptr Word32
binding
{-# LINE 44 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr buffer
{-# LINE 45 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr offset
{-# LINE 46 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 24)) ptr size
{-# LINE 47 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 32)) ptr sampler
{-# LINE 48 "src/WGPU/Raw/Generated/Struct/WGPUBindGroupEntry.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 40)) ptr textureView