{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE NoImplicitPrelude #-}

-- This file was generated by wgpu-raw-hs-codegen on:
--   2021-08-25T10:02:03.522705
-- Using wgpu-native git hash:
--   b10496e7eed9349f0fd541e6dfe5029cb436de74 wgpu-native (v0.9.2.2)

module WGPU.Raw.Generated.Enum.WGPUStencilOperation where

import Data.Word (Word32)
import Foreign (Storable)
import Prelude (Eq, Num, Show)

newtype WGPUStencilOperation = WGPUStencilOperation Word32
  deriving (WGPUStencilOperation -> WGPUStencilOperation -> Bool
(WGPUStencilOperation -> WGPUStencilOperation -> Bool)
-> (WGPUStencilOperation -> WGPUStencilOperation -> Bool)
-> Eq WGPUStencilOperation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WGPUStencilOperation -> WGPUStencilOperation -> Bool
$c/= :: WGPUStencilOperation -> WGPUStencilOperation -> Bool
== :: WGPUStencilOperation -> WGPUStencilOperation -> Bool
$c== :: WGPUStencilOperation -> WGPUStencilOperation -> Bool
Eq, Int -> WGPUStencilOperation -> ShowS
[WGPUStencilOperation] -> ShowS
WGPUStencilOperation -> String
(Int -> WGPUStencilOperation -> ShowS)
-> (WGPUStencilOperation -> String)
-> ([WGPUStencilOperation] -> ShowS)
-> Show WGPUStencilOperation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WGPUStencilOperation] -> ShowS
$cshowList :: [WGPUStencilOperation] -> ShowS
show :: WGPUStencilOperation -> String
$cshow :: WGPUStencilOperation -> String
showsPrec :: Int -> WGPUStencilOperation -> ShowS
$cshowsPrec :: Int -> WGPUStencilOperation -> ShowS
Show, Integer -> WGPUStencilOperation
WGPUStencilOperation -> WGPUStencilOperation
WGPUStencilOperation
-> WGPUStencilOperation -> WGPUStencilOperation
(WGPUStencilOperation
 -> WGPUStencilOperation -> WGPUStencilOperation)
-> (WGPUStencilOperation
    -> WGPUStencilOperation -> WGPUStencilOperation)
-> (WGPUStencilOperation
    -> WGPUStencilOperation -> WGPUStencilOperation)
-> (WGPUStencilOperation -> WGPUStencilOperation)
-> (WGPUStencilOperation -> WGPUStencilOperation)
-> (WGPUStencilOperation -> WGPUStencilOperation)
-> (Integer -> WGPUStencilOperation)
-> Num WGPUStencilOperation
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> WGPUStencilOperation
$cfromInteger :: Integer -> WGPUStencilOperation
signum :: WGPUStencilOperation -> WGPUStencilOperation
$csignum :: WGPUStencilOperation -> WGPUStencilOperation
abs :: WGPUStencilOperation -> WGPUStencilOperation
$cabs :: WGPUStencilOperation -> WGPUStencilOperation
negate :: WGPUStencilOperation -> WGPUStencilOperation
$cnegate :: WGPUStencilOperation -> WGPUStencilOperation
* :: WGPUStencilOperation
-> WGPUStencilOperation -> WGPUStencilOperation
$c* :: WGPUStencilOperation
-> WGPUStencilOperation -> WGPUStencilOperation
- :: WGPUStencilOperation
-> WGPUStencilOperation -> WGPUStencilOperation
$c- :: WGPUStencilOperation
-> WGPUStencilOperation -> WGPUStencilOperation
+ :: WGPUStencilOperation
-> WGPUStencilOperation -> WGPUStencilOperation
$c+ :: WGPUStencilOperation
-> WGPUStencilOperation -> WGPUStencilOperation
Num, Ptr b -> Int -> IO WGPUStencilOperation
Ptr b -> Int -> WGPUStencilOperation -> IO ()
Ptr WGPUStencilOperation -> IO WGPUStencilOperation
Ptr WGPUStencilOperation -> Int -> IO WGPUStencilOperation
Ptr WGPUStencilOperation -> Int -> WGPUStencilOperation -> IO ()
Ptr WGPUStencilOperation -> WGPUStencilOperation -> IO ()
WGPUStencilOperation -> Int
(WGPUStencilOperation -> Int)
-> (WGPUStencilOperation -> Int)
-> (Ptr WGPUStencilOperation -> Int -> IO WGPUStencilOperation)
-> (Ptr WGPUStencilOperation
    -> Int -> WGPUStencilOperation -> IO ())
-> (forall b. Ptr b -> Int -> IO WGPUStencilOperation)
-> (forall b. Ptr b -> Int -> WGPUStencilOperation -> IO ())
-> (Ptr WGPUStencilOperation -> IO WGPUStencilOperation)
-> (Ptr WGPUStencilOperation -> WGPUStencilOperation -> IO ())
-> Storable WGPUStencilOperation
forall b. Ptr b -> Int -> IO WGPUStencilOperation
forall b. Ptr b -> Int -> WGPUStencilOperation -> 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 WGPUStencilOperation -> WGPUStencilOperation -> IO ()
$cpoke :: Ptr WGPUStencilOperation -> WGPUStencilOperation -> IO ()
peek :: Ptr WGPUStencilOperation -> IO WGPUStencilOperation
$cpeek :: Ptr WGPUStencilOperation -> IO WGPUStencilOperation
pokeByteOff :: Ptr b -> Int -> WGPUStencilOperation -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> WGPUStencilOperation -> IO ()
peekByteOff :: Ptr b -> Int -> IO WGPUStencilOperation
$cpeekByteOff :: forall b. Ptr b -> Int -> IO WGPUStencilOperation
pokeElemOff :: Ptr WGPUStencilOperation -> Int -> WGPUStencilOperation -> IO ()
$cpokeElemOff :: Ptr WGPUStencilOperation -> Int -> WGPUStencilOperation -> IO ()
peekElemOff :: Ptr WGPUStencilOperation -> Int -> IO WGPUStencilOperation
$cpeekElemOff :: Ptr WGPUStencilOperation -> Int -> IO WGPUStencilOperation
alignment :: WGPUStencilOperation -> Int
$calignment :: WGPUStencilOperation -> Int
sizeOf :: WGPUStencilOperation -> Int
$csizeOf :: WGPUStencilOperation -> Int
Storable)

pattern Keep :: forall a. (Eq a, Num a) => a
pattern $bKeep :: a
$mKeep :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
Keep = 0x00000000

pattern Zero :: forall a. (Eq a, Num a) => a
pattern $bZero :: a
$mZero :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
Zero = 0x00000001

pattern Replace :: forall a. (Eq a, Num a) => a
pattern $bReplace :: a
$mReplace :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
Replace = 0x00000002

pattern Invert :: forall a. (Eq a, Num a) => a
pattern $bInvert :: a
$mInvert :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
Invert = 0x00000003

pattern IncrementClamp :: forall a. (Eq a, Num a) => a
pattern $bIncrementClamp :: a
$mIncrementClamp :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
IncrementClamp = 0x00000004

pattern DecrementClamp :: forall a. (Eq a, Num a) => a
pattern $bDecrementClamp :: a
$mDecrementClamp :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DecrementClamp = 0x00000005

pattern IncrementWrap :: forall a. (Eq a, Num a) => a
pattern $bIncrementWrap :: a
$mIncrementWrap :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
IncrementWrap = 0x00000006

pattern DecrementWrap :: forall a. (Eq a, Num a) => a
pattern $bDecrementWrap :: a
$mDecrementWrap :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DecrementWrap = 0x00000007