{-# LINE 1 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.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.WGPUSamplerDescriptor where



import Data.Word (Word16, Word32, Word64)
import Data.Int (Int32)
import Foreign
import Foreign.C.Types
import WGPU.Raw.Types
import Prelude (pure, ($!))
import WGPU.Raw.Generated.Enum.WGPUAddressMode
import WGPU.Raw.Generated.Enum.WGPUAddressMode
import WGPU.Raw.Generated.Enum.WGPUAddressMode
import WGPU.Raw.Generated.Enum.WGPUFilterMode
import WGPU.Raw.Generated.Enum.WGPUFilterMode
import WGPU.Raw.Generated.Enum.WGPUFilterMode
import WGPU.Raw.Generated.Enum.WGPUCompareFunction
import WGPU.Raw.Generated.Struct.WGPUChainedStruct

data WGPUSamplerDescriptor = WGPUSamplerDescriptor {
  WGPUSamplerDescriptor -> Ptr WGPUChainedStruct
nextInChain :: Ptr (WGPUChainedStruct),
  WGPUSamplerDescriptor -> Ptr CChar
label :: Ptr (CChar),
  WGPUSamplerDescriptor -> WGPUAddressMode
addressModeU :: WGPUAddressMode,
  WGPUSamplerDescriptor -> WGPUAddressMode
addressModeV :: WGPUAddressMode,
  WGPUSamplerDescriptor -> WGPUAddressMode
addressModeW :: WGPUAddressMode,
  WGPUSamplerDescriptor -> WGPUFilterMode
magFilter :: WGPUFilterMode,
  WGPUSamplerDescriptor -> WGPUFilterMode
minFilter :: WGPUFilterMode,
  WGPUSamplerDescriptor -> WGPUFilterMode
mipmapFilter :: WGPUFilterMode,
  WGPUSamplerDescriptor -> CFloat
lodMinClamp :: CFloat,
  WGPUSamplerDescriptor -> CFloat
lodMaxClamp :: CFloat,
  WGPUSamplerDescriptor -> WGPUCompareFunction
compare :: WGPUCompareFunction,
  WGPUSamplerDescriptor -> Word16
maxAnisotropy :: Word16
}

instance Storable WGPUSamplerDescriptor where
  sizeOf :: WGPUSamplerDescriptor -> Int
sizeOf WGPUSamplerDescriptor
_ = ((Int
56))
{-# LINE 46 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
  alignment = sizeOf
  peek :: Ptr WGPUSamplerDescriptor -> IO WGPUSamplerDescriptor
peek Ptr WGPUSamplerDescriptor
ptr = do
    Ptr WGPUChainedStruct
nextInChain <- ((\Ptr WGPUSamplerDescriptor
hsc_ptr -> Ptr WGPUSamplerDescriptor -> Int -> IO (Ptr WGPUChainedStruct)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr WGPUSamplerDescriptor
hsc_ptr Int
0)) Ptr WGPUSamplerDescriptor
ptr
{-# LINE 49 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    label <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr
{-# LINE 50 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    addressModeU <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr
{-# LINE 51 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    addressModeV <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr
{-# LINE 52 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    addressModeW <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) ptr
{-# LINE 53 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    magFilter <- ((\hsc_ptr -> peekByteOff hsc_ptr 28)) ptr
{-# LINE 54 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    minFilter <- ((\hsc_ptr -> peekByteOff hsc_ptr 32)) ptr
{-# LINE 55 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    mipmapFilter <- ((\hsc_ptr -> peekByteOff hsc_ptr 36)) ptr
{-# LINE 56 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    lodMinClamp <- ((\hsc_ptr -> peekByteOff hsc_ptr 40)) ptr
{-# LINE 57 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    lodMaxClamp <- ((\hsc_ptr -> peekByteOff hsc_ptr 44)) ptr
{-# LINE 58 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    compare <- ((\hsc_ptr -> peekByteOff hsc_ptr 48)) ptr
{-# LINE 59 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    maxAnisotropy <- ((\hsc_ptr -> peekByteOff hsc_ptr 52)) ptr
{-# LINE 60 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    pure $! WGPUSamplerDescriptor{..}
  poke :: Ptr WGPUSamplerDescriptor -> WGPUSamplerDescriptor -> IO ()
poke Ptr WGPUSamplerDescriptor
ptr WGPUSamplerDescriptor{Word16
Ptr CChar
Ptr WGPUChainedStruct
CFloat
WGPUAddressMode
WGPUCompareFunction
WGPUFilterMode
maxAnisotropy :: Word16
compare :: WGPUCompareFunction
lodMaxClamp :: CFloat
lodMinClamp :: CFloat
mipmapFilter :: WGPUFilterMode
minFilter :: WGPUFilterMode
magFilter :: WGPUFilterMode
addressModeW :: WGPUAddressMode
addressModeV :: WGPUAddressMode
addressModeU :: WGPUAddressMode
label :: Ptr CChar
nextInChain :: Ptr WGPUChainedStruct
maxAnisotropy :: WGPUSamplerDescriptor -> Word16
compare :: WGPUSamplerDescriptor -> WGPUCompareFunction
lodMaxClamp :: WGPUSamplerDescriptor -> CFloat
lodMinClamp :: WGPUSamplerDescriptor -> CFloat
mipmapFilter :: WGPUSamplerDescriptor -> WGPUFilterMode
minFilter :: WGPUSamplerDescriptor -> WGPUFilterMode
magFilter :: WGPUSamplerDescriptor -> WGPUFilterMode
addressModeW :: WGPUSamplerDescriptor -> WGPUAddressMode
addressModeV :: WGPUSamplerDescriptor -> WGPUAddressMode
addressModeU :: WGPUSamplerDescriptor -> WGPUAddressMode
label :: WGPUSamplerDescriptor -> Ptr CChar
nextInChain :: WGPUSamplerDescriptor -> Ptr WGPUChainedStruct
..} = do
    ((\Ptr WGPUSamplerDescriptor
hsc_ptr -> Ptr WGPUSamplerDescriptor -> Int -> Ptr WGPUChainedStruct -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr WGPUSamplerDescriptor
hsc_ptr Int
0)) Ptr WGPUSamplerDescriptor
ptr Ptr WGPUChainedStruct
nextInChain
{-# LINE 63 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr label
{-# LINE 64 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr addressModeU
{-# LINE 65 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr addressModeV
{-# LINE 66 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 24)) ptr addressModeW
{-# LINE 67 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 28)) ptr magFilter
{-# LINE 68 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 32)) ptr minFilter
{-# LINE 69 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 36)) ptr mipmapFilter
{-# LINE 70 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 40)) ptr lodMinClamp
{-# LINE 71 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 44)) ptr lodMaxClamp
{-# LINE 72 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 48)) ptr compare
{-# LINE 73 "src/WGPU/Raw/Generated/Struct/WGPUSamplerDescriptor.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 52)) ptr maxAnisotropy