{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE NoImplicitPrelude #-}

-- | All SDL programs need to initialize the library before starting to work with it.
--
--     Almost everything can simply call @SDL_Init()@ near startup, with a handful of flags to specify subsystems to touch. These are here to make sure SDL does not even attempt to touch low-level pieces of the operating system that you don\'t intend to use. For example, you might be using SDL for video and input but chose an external library for audio, and in this case you would just need to leave off the @'sDL_INIT_AUDIO'@ flag to make sure that external library has complete control.
--
--     Most apps, when terminating, should call @SDL_Quit()@. This will clean up (nearly) everything that SDL might have allocated, and crucially, it\'ll make sure that the display\'s resolution is back to what the user expects if you had previously changed it for your game.
--
--     SDL3 apps are strongly encouraged to call @SDL_SetAppMetadata()@ at startup to fill in details about the program. This is completely optional, but it helps in small ways (we can provide an About dialog box for the macOS menu, we can name the app in the system\'s audio mixer, etc). Those that want to provide a /lot/ of information should look at the more-detailed @SDL_SetAppMetadataProperty()@. Initialization flags for SDL_Init and\/or SDL_InitSubSystem
--
--     These are the flags which may be passed to @SDL_Init()@. You should specify the subsystems which you will be using in your application.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_Init', 'sDL_Quit', 'sDL_InitSubSystem', 'sDL_QuitSubSystem', 'sDL_WasInit'
module SDL3.Sys.Bindgen.Init (
  SDL3.Sys.Bindgen.Init.SDL_InitFlags (..),
  SDL3.Sys.Bindgen.Init.sDL_INIT_AUDIO,
  SDL3.Sys.Bindgen.Init.sDL_INIT_VIDEO,
  SDL3.Sys.Bindgen.Init.sDL_INIT_JOYSTICK,
  SDL3.Sys.Bindgen.Init.sDL_INIT_HAPTIC,
  SDL3.Sys.Bindgen.Init.sDL_INIT_GAMEPAD,
  SDL3.Sys.Bindgen.Init.sDL_INIT_EVENTS,
  SDL3.Sys.Bindgen.Init.sDL_INIT_SENSOR,
  SDL3.Sys.Bindgen.Init.sDL_INIT_CAMERA,
  SDL3.Sys.Bindgen.Init.SDL_AppResult (..),
  pattern SDL3.Sys.Bindgen.Init.SDL_APP_CONTINUE,
  pattern SDL3.Sys.Bindgen.Init.SDL_APP_SUCCESS,
  pattern SDL3.Sys.Bindgen.Init.SDL_APP_FAILURE,
  SDL3.Sys.Bindgen.Init.SDL_AppInit_func_Aux (..),
  SDL3.Sys.Bindgen.Init.SDL_AppInit_func (..),
  SDL3.Sys.Bindgen.Init.SDL_AppIterate_func_Aux (..),
  SDL3.Sys.Bindgen.Init.SDL_AppIterate_func (..),
  SDL3.Sys.Bindgen.Init.SDL_AppEvent_func_Aux (..),
  SDL3.Sys.Bindgen.Init.SDL_AppEvent_func (..),
  SDL3.Sys.Bindgen.Init.SDL_AppQuit_func_Aux (..),
  SDL3.Sys.Bindgen.Init.SDL_AppQuit_func (..),
  SDL3.Sys.Bindgen.Init.SDL_MainThreadCallback_Aux (..),
  SDL3.Sys.Bindgen.Init.SDL_MainThreadCallback (..),
  SDL3.Sys.Bindgen.Init.sDL_PROP_APP_METADATA_NAME_STRING,
  SDL3.Sys.Bindgen.Init.sDL_PROP_APP_METADATA_VERSION_STRING,
  SDL3.Sys.Bindgen.Init.sDL_PROP_APP_METADATA_IDENTIFIER_STRING,
  SDL3.Sys.Bindgen.Init.sDL_PROP_APP_METADATA_CREATOR_STRING,
  SDL3.Sys.Bindgen.Init.sDL_PROP_APP_METADATA_COPYRIGHT_STRING,
  SDL3.Sys.Bindgen.Init.sDL_PROP_APP_METADATA_URL_STRING,
  SDL3.Sys.Bindgen.Init.sDL_PROP_APP_METADATA_TYPE_STRING,
)
where

import Prelude (
  Bounded,
  Enum,
  Eq,
  IO,
  Int,
  Integral,
  Num,
  Ord,
  Read,
  Real,
  Show,
  fmap,
  pure,
  (<*>),
  type (~),
 )

import HsBindgen.Runtime.CEnum qualified as CEnum
import HsBindgen.Runtime.HasCField qualified as HasCField
import HsBindgen.Runtime.IncompleteArray qualified as IA
import HsBindgen.Runtime.IsArray qualified as IsA
import HsBindgen.Runtime.Marshal qualified as Marshal
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CompatHasField qualified as BG.CompatHasField
import SDL3.Sys.Bindgen.Events qualified
import SDL3.Sys.Bindgen.Stdinc qualified

-- | [C declaration]: @SDL_InitFlags@, defined at @SDL3\/SDL_init.h 78:16@
newtype SDL_InitFlags = SDL_InitFlags
  { SDL_InitFlags -> Uint32
unwrap :: SDL3.Sys.Bindgen.Stdinc.Uint32
  }
  deriving stock ((forall x. SDL_InitFlags -> Rep SDL_InitFlags x)
-> (forall x. Rep SDL_InitFlags x -> SDL_InitFlags)
-> Generic SDL_InitFlags
forall x. Rep SDL_InitFlags x -> SDL_InitFlags
forall x. SDL_InitFlags -> Rep SDL_InitFlags x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_InitFlags -> Rep SDL_InitFlags x
from :: forall x. SDL_InitFlags -> Rep SDL_InitFlags x
$cto :: forall x. Rep SDL_InitFlags x -> SDL_InitFlags
to :: forall x. Rep SDL_InitFlags x -> SDL_InitFlags
BG.Generic, SDL_InitFlags -> SDL_InitFlags -> Bool
(SDL_InitFlags -> SDL_InitFlags -> Bool)
-> (SDL_InitFlags -> SDL_InitFlags -> Bool) -> Eq SDL_InitFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_InitFlags -> SDL_InitFlags -> Bool
== :: SDL_InitFlags -> SDL_InitFlags -> Bool
$c/= :: SDL_InitFlags -> SDL_InitFlags -> Bool
/= :: SDL_InitFlags -> SDL_InitFlags -> Bool
Eq, Eq SDL_InitFlags
Eq SDL_InitFlags =>
(SDL_InitFlags -> SDL_InitFlags -> Ordering)
-> (SDL_InitFlags -> SDL_InitFlags -> Bool)
-> (SDL_InitFlags -> SDL_InitFlags -> Bool)
-> (SDL_InitFlags -> SDL_InitFlags -> Bool)
-> (SDL_InitFlags -> SDL_InitFlags -> Bool)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> Ord SDL_InitFlags
SDL_InitFlags -> SDL_InitFlags -> Bool
SDL_InitFlags -> SDL_InitFlags -> Ordering
SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_InitFlags -> SDL_InitFlags -> Ordering
compare :: SDL_InitFlags -> SDL_InitFlags -> Ordering
$c< :: SDL_InitFlags -> SDL_InitFlags -> Bool
< :: SDL_InitFlags -> SDL_InitFlags -> Bool
$c<= :: SDL_InitFlags -> SDL_InitFlags -> Bool
<= :: SDL_InitFlags -> SDL_InitFlags -> Bool
$c> :: SDL_InitFlags -> SDL_InitFlags -> Bool
> :: SDL_InitFlags -> SDL_InitFlags -> Bool
$c>= :: SDL_InitFlags -> SDL_InitFlags -> Bool
>= :: SDL_InitFlags -> SDL_InitFlags -> Bool
$cmax :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
max :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$cmin :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
min :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
Ord, ReadPrec [SDL_InitFlags]
ReadPrec SDL_InitFlags
Int -> ReadS SDL_InitFlags
ReadS [SDL_InitFlags]
(Int -> ReadS SDL_InitFlags)
-> ReadS [SDL_InitFlags]
-> ReadPrec SDL_InitFlags
-> ReadPrec [SDL_InitFlags]
-> Read SDL_InitFlags
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SDL_InitFlags
readsPrec :: Int -> ReadS SDL_InitFlags
$creadList :: ReadS [SDL_InitFlags]
readList :: ReadS [SDL_InitFlags]
$creadPrec :: ReadPrec SDL_InitFlags
readPrec :: ReadPrec SDL_InitFlags
$creadListPrec :: ReadPrec [SDL_InitFlags]
readListPrec :: ReadPrec [SDL_InitFlags]
Read, Int -> SDL_InitFlags -> ShowS
[SDL_InitFlags] -> ShowS
SDL_InitFlags -> String
(Int -> SDL_InitFlags -> ShowS)
-> (SDL_InitFlags -> String)
-> ([SDL_InitFlags] -> ShowS)
-> Show SDL_InitFlags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_InitFlags -> ShowS
showsPrec :: Int -> SDL_InitFlags -> ShowS
$cshow :: SDL_InitFlags -> String
show :: SDL_InitFlags -> String
$cshowList :: [SDL_InitFlags] -> ShowS
showList :: [SDL_InitFlags] -> ShowS
Show)
  deriving newtype
    ( Word64 -> Int -> SDL_InitFlags
SDL_InitFlags -> Int -> Word64
(SDL_InitFlags -> Int -> Word64)
-> (Word64 -> Int -> SDL_InitFlags) -> Bitfield SDL_InitFlags
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: SDL_InitFlags -> Int -> Word64
narrow :: SDL_InitFlags -> Int -> Word64
$cextend :: Word64 -> Int -> SDL_InitFlags
extend :: Word64 -> Int -> SDL_InitFlags
BG.Bitfield
    , Eq SDL_InitFlags
SDL_InitFlags
Eq SDL_InitFlags =>
(SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> SDL_InitFlags
-> (Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> Bool)
-> (SDL_InitFlags -> Maybe Int)
-> (SDL_InitFlags -> Int)
-> (SDL_InitFlags -> Bool)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int)
-> Bits SDL_InitFlags
Int -> SDL_InitFlags
SDL_InitFlags -> Bool
SDL_InitFlags -> Int
SDL_InitFlags -> Maybe Int
SDL_InitFlags -> SDL_InitFlags
SDL_InitFlags -> Int -> Bool
SDL_InitFlags -> Int -> SDL_InitFlags
SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
.&. :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$c.|. :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
.|. :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$cxor :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
xor :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$ccomplement :: SDL_InitFlags -> SDL_InitFlags
complement :: SDL_InitFlags -> SDL_InitFlags
$cshift :: SDL_InitFlags -> Int -> SDL_InitFlags
shift :: SDL_InitFlags -> Int -> SDL_InitFlags
$crotate :: SDL_InitFlags -> Int -> SDL_InitFlags
rotate :: SDL_InitFlags -> Int -> SDL_InitFlags
$czeroBits :: SDL_InitFlags
zeroBits :: SDL_InitFlags
$cbit :: Int -> SDL_InitFlags
bit :: Int -> SDL_InitFlags
$csetBit :: SDL_InitFlags -> Int -> SDL_InitFlags
setBit :: SDL_InitFlags -> Int -> SDL_InitFlags
$cclearBit :: SDL_InitFlags -> Int -> SDL_InitFlags
clearBit :: SDL_InitFlags -> Int -> SDL_InitFlags
$ccomplementBit :: SDL_InitFlags -> Int -> SDL_InitFlags
complementBit :: SDL_InitFlags -> Int -> SDL_InitFlags
$ctestBit :: SDL_InitFlags -> Int -> Bool
testBit :: SDL_InitFlags -> Int -> Bool
$cbitSizeMaybe :: SDL_InitFlags -> Maybe Int
bitSizeMaybe :: SDL_InitFlags -> Maybe Int
$cbitSize :: SDL_InitFlags -> Int
bitSize :: SDL_InitFlags -> Int
$cisSigned :: SDL_InitFlags -> Bool
isSigned :: SDL_InitFlags -> Bool
$cshiftL :: SDL_InitFlags -> Int -> SDL_InitFlags
shiftL :: SDL_InitFlags -> Int -> SDL_InitFlags
$cunsafeShiftL :: SDL_InitFlags -> Int -> SDL_InitFlags
unsafeShiftL :: SDL_InitFlags -> Int -> SDL_InitFlags
$cshiftR :: SDL_InitFlags -> Int -> SDL_InitFlags
shiftR :: SDL_InitFlags -> Int -> SDL_InitFlags
$cunsafeShiftR :: SDL_InitFlags -> Int -> SDL_InitFlags
unsafeShiftR :: SDL_InitFlags -> Int -> SDL_InitFlags
$crotateL :: SDL_InitFlags -> Int -> SDL_InitFlags
rotateL :: SDL_InitFlags -> Int -> SDL_InitFlags
$crotateR :: SDL_InitFlags -> Int -> SDL_InitFlags
rotateR :: SDL_InitFlags -> Int -> SDL_InitFlags
$cpopCount :: SDL_InitFlags -> Int
popCount :: SDL_InitFlags -> Int
BG.Bits
    , Bits SDL_InitFlags
Bits SDL_InitFlags =>
(SDL_InitFlags -> Int)
-> (SDL_InitFlags -> Int)
-> (SDL_InitFlags -> Int)
-> FiniteBits SDL_InitFlags
SDL_InitFlags -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SDL_InitFlags -> Int
finiteBitSize :: SDL_InitFlags -> Int
$ccountLeadingZeros :: SDL_InitFlags -> Int
countLeadingZeros :: SDL_InitFlags -> Int
$ccountTrailingZeros :: SDL_InitFlags -> Int
countTrailingZeros :: SDL_InitFlags -> Int
BG.FiniteBits
    , FFIType SDL_InitFlags -> SDL_InitFlags
SDL_InitFlags -> FFIType SDL_InitFlags
(SDL_InitFlags -> FFIType SDL_InitFlags)
-> (FFIType SDL_InitFlags -> SDL_InitFlags)
-> HasFFIType SDL_InitFlags
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_InitFlags -> FFIType SDL_InitFlags
toFFIType :: SDL_InitFlags -> FFIType SDL_InitFlags
$cfromFFIType :: FFIType SDL_InitFlags -> SDL_InitFlags
fromFFIType :: FFIType SDL_InitFlags -> SDL_InitFlags
BG.HasFFIType
    , Ord SDL_InitFlags
Ord SDL_InitFlags =>
((SDL_InitFlags, SDL_InitFlags) -> [SDL_InitFlags])
-> ((SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Int)
-> ((SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Int)
-> ((SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Bool)
-> ((SDL_InitFlags, SDL_InitFlags) -> Int)
-> ((SDL_InitFlags, SDL_InitFlags) -> Int)
-> Ix SDL_InitFlags
(SDL_InitFlags, SDL_InitFlags) -> Int
(SDL_InitFlags, SDL_InitFlags) -> [SDL_InitFlags]
(SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Bool
(SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (SDL_InitFlags, SDL_InitFlags) -> [SDL_InitFlags]
range :: (SDL_InitFlags, SDL_InitFlags) -> [SDL_InitFlags]
$cindex :: (SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Int
index :: (SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Int
$cunsafeIndex :: (SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Int
unsafeIndex :: (SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Int
$cinRange :: (SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Bool
inRange :: (SDL_InitFlags, SDL_InitFlags) -> SDL_InitFlags -> Bool
$crangeSize :: (SDL_InitFlags, SDL_InitFlags) -> Int
rangeSize :: (SDL_InitFlags, SDL_InitFlags) -> Int
$cunsafeRangeSize :: (SDL_InitFlags, SDL_InitFlags) -> Int
unsafeRangeSize :: (SDL_InitFlags, SDL_InitFlags) -> Int
BG.Ix
    , Addr# -> Int# -> SDL_InitFlags
ByteArray# -> Int# -> SDL_InitFlags
Proxy SDL_InitFlags -> Int#
SDL_InitFlags -> Int#
(Proxy SDL_InitFlags -> Int#)
-> (SDL_InitFlags -> Int#)
-> (Proxy SDL_InitFlags -> Int#)
-> (SDL_InitFlags -> Int#)
-> (ByteArray# -> Int# -> SDL_InitFlags)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, SDL_InitFlags #))
-> (forall s.
    MutableByteArray# s
    -> Int# -> SDL_InitFlags -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s)
-> (Addr# -> Int# -> SDL_InitFlags)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, SDL_InitFlags #))
-> (forall s.
    Addr# -> Int# -> SDL_InitFlags -> State# s -> State# s)
-> (forall s.
    Addr# -> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s)
-> Prim SDL_InitFlags
forall s.
Addr# -> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s
forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_InitFlags #)
forall s. Addr# -> Int# -> SDL_InitFlags -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_InitFlags #)
forall s.
MutableByteArray# s
-> Int# -> SDL_InitFlags -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy SDL_InitFlags -> Int#
sizeOfType# :: Proxy SDL_InitFlags -> Int#
$csizeOf# :: SDL_InitFlags -> Int#
sizeOf# :: SDL_InitFlags -> Int#
$calignmentOfType# :: Proxy SDL_InitFlags -> Int#
alignmentOfType# :: Proxy SDL_InitFlags -> Int#
$calignment# :: SDL_InitFlags -> Int#
alignment# :: SDL_InitFlags -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> SDL_InitFlags
indexByteArray# :: ByteArray# -> Int# -> SDL_InitFlags
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_InitFlags #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_InitFlags #)
$cwriteByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_InitFlags -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_InitFlags -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> SDL_InitFlags
indexOffAddr# :: Addr# -> Int# -> SDL_InitFlags
$creadOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_InitFlags #)
readOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_InitFlags #)
$cwriteOffAddr# :: forall s. Addr# -> Int# -> SDL_InitFlags -> State# s -> State# s
writeOffAddr# :: forall s. Addr# -> Int# -> SDL_InitFlags -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr# -> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s
setOffAddr# :: forall s.
Addr# -> Int# -> Int# -> SDL_InitFlags -> State# s -> State# s
BG.Prim
    , Ptr SDL_InitFlags -> IO SDL_InitFlags
Ptr SDL_InitFlags -> Int -> IO SDL_InitFlags
Ptr SDL_InitFlags -> Int -> SDL_InitFlags -> IO ()
Ptr SDL_InitFlags -> SDL_InitFlags -> IO ()
SDL_InitFlags -> Int
(SDL_InitFlags -> Int)
-> (SDL_InitFlags -> Int)
-> (Ptr SDL_InitFlags -> Int -> IO SDL_InitFlags)
-> (Ptr SDL_InitFlags -> Int -> SDL_InitFlags -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_InitFlags)
-> (forall b. Ptr b -> Int -> SDL_InitFlags -> IO ())
-> (Ptr SDL_InitFlags -> IO SDL_InitFlags)
-> (Ptr SDL_InitFlags -> SDL_InitFlags -> IO ())
-> Storable SDL_InitFlags
forall b. Ptr b -> Int -> IO SDL_InitFlags
forall b. Ptr b -> Int -> SDL_InitFlags -> 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
$csizeOf :: SDL_InitFlags -> Int
sizeOf :: SDL_InitFlags -> Int
$calignment :: SDL_InitFlags -> Int
alignment :: SDL_InitFlags -> Int
$cpeekElemOff :: Ptr SDL_InitFlags -> Int -> IO SDL_InitFlags
peekElemOff :: Ptr SDL_InitFlags -> Int -> IO SDL_InitFlags
$cpokeElemOff :: Ptr SDL_InitFlags -> Int -> SDL_InitFlags -> IO ()
pokeElemOff :: Ptr SDL_InitFlags -> Int -> SDL_InitFlags -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_InitFlags
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_InitFlags
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_InitFlags -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_InitFlags -> IO ()
$cpeek :: Ptr SDL_InitFlags -> IO SDL_InitFlags
peek :: Ptr SDL_InitFlags -> IO SDL_InitFlags
$cpoke :: Ptr SDL_InitFlags -> SDL_InitFlags -> IO ()
poke :: Ptr SDL_InitFlags -> SDL_InitFlags -> IO ()
BG.Storable
    , SDL_InitFlags
SDL_InitFlags -> SDL_InitFlags -> Bounded SDL_InitFlags
forall a. a -> a -> Bounded a
$cminBound :: SDL_InitFlags
minBound :: SDL_InitFlags
$cmaxBound :: SDL_InitFlags
maxBound :: SDL_InitFlags
Bounded
    , Int -> SDL_InitFlags
SDL_InitFlags -> Int
SDL_InitFlags -> [SDL_InitFlags]
SDL_InitFlags -> SDL_InitFlags
SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
(SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags)
-> (Int -> SDL_InitFlags)
-> (SDL_InitFlags -> Int)
-> (SDL_InitFlags -> [SDL_InitFlags])
-> (SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags])
-> (SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags])
-> (SDL_InitFlags
    -> SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags])
-> Enum SDL_InitFlags
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: SDL_InitFlags -> SDL_InitFlags
succ :: SDL_InitFlags -> SDL_InitFlags
$cpred :: SDL_InitFlags -> SDL_InitFlags
pred :: SDL_InitFlags -> SDL_InitFlags
$ctoEnum :: Int -> SDL_InitFlags
toEnum :: Int -> SDL_InitFlags
$cfromEnum :: SDL_InitFlags -> Int
fromEnum :: SDL_InitFlags -> Int
$cenumFrom :: SDL_InitFlags -> [SDL_InitFlags]
enumFrom :: SDL_InitFlags -> [SDL_InitFlags]
$cenumFromThen :: SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
enumFromThen :: SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
$cenumFromTo :: SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
enumFromTo :: SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
$cenumFromThenTo :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
enumFromThenTo :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags -> [SDL_InitFlags]
Enum
    , Enum SDL_InitFlags
Real SDL_InitFlags
(Real SDL_InitFlags, Enum SDL_InitFlags) =>
(SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags
    -> SDL_InitFlags -> (SDL_InitFlags, SDL_InitFlags))
-> (SDL_InitFlags
    -> SDL_InitFlags -> (SDL_InitFlags, SDL_InitFlags))
-> (SDL_InitFlags -> Integer)
-> Integral SDL_InitFlags
SDL_InitFlags -> Integer
SDL_InitFlags -> SDL_InitFlags -> (SDL_InitFlags, SDL_InitFlags)
SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
quot :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$crem :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
rem :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$cdiv :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
div :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$cmod :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
mod :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$cquotRem :: SDL_InitFlags -> SDL_InitFlags -> (SDL_InitFlags, SDL_InitFlags)
quotRem :: SDL_InitFlags -> SDL_InitFlags -> (SDL_InitFlags, SDL_InitFlags)
$cdivMod :: SDL_InitFlags -> SDL_InitFlags -> (SDL_InitFlags, SDL_InitFlags)
divMod :: SDL_InitFlags -> SDL_InitFlags -> (SDL_InitFlags, SDL_InitFlags)
$ctoInteger :: SDL_InitFlags -> Integer
toInteger :: SDL_InitFlags -> Integer
Integral
    , Ptr SDL_InitFlags -> IO SDL_InitFlags
(Ptr SDL_InitFlags -> IO SDL_InitFlags) -> ReadRaw SDL_InitFlags
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_InitFlags -> IO SDL_InitFlags
readRaw :: Ptr SDL_InitFlags -> IO SDL_InitFlags
Marshal.ReadRaw
    , Proxy SDL_InitFlags -> Int
(Proxy SDL_InitFlags -> Int)
-> (Proxy SDL_InitFlags -> Int) -> StaticSize SDL_InitFlags
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_InitFlags -> Int
staticSizeOf :: Proxy SDL_InitFlags -> Int
$cstaticAlignment :: Proxy SDL_InitFlags -> Int
staticAlignment :: Proxy SDL_InitFlags -> Int
Marshal.StaticSize
    , Ptr SDL_InitFlags -> SDL_InitFlags -> IO ()
(Ptr SDL_InitFlags -> SDL_InitFlags -> IO ())
-> WriteRaw SDL_InitFlags
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_InitFlags -> SDL_InitFlags -> IO ()
writeRaw :: Ptr SDL_InitFlags -> SDL_InitFlags -> IO ()
Marshal.WriteRaw
    , Integer -> SDL_InitFlags
SDL_InitFlags -> SDL_InitFlags
SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
(SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags)
-> (SDL_InitFlags -> SDL_InitFlags)
-> (Integer -> SDL_InitFlags)
-> Num SDL_InitFlags
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
+ :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$c- :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
- :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$c* :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
* :: SDL_InitFlags -> SDL_InitFlags -> SDL_InitFlags
$cnegate :: SDL_InitFlags -> SDL_InitFlags
negate :: SDL_InitFlags -> SDL_InitFlags
$cabs :: SDL_InitFlags -> SDL_InitFlags
abs :: SDL_InitFlags -> SDL_InitFlags
$csignum :: SDL_InitFlags -> SDL_InitFlags
signum :: SDL_InitFlags -> SDL_InitFlags
$cfromInteger :: Integer -> SDL_InitFlags
fromInteger :: Integer -> SDL_InitFlags
Num
    , Num SDL_InitFlags
Ord SDL_InitFlags
(Num SDL_InitFlags, Ord SDL_InitFlags) =>
(SDL_InitFlags -> Rational) -> Real SDL_InitFlags
SDL_InitFlags -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SDL_InitFlags -> Rational
toRational :: SDL_InitFlags -> Rational
Real
    )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "unwrap" SDL_InitFlags ty
  where
  hasField :: SDL_InitFlags -> (ty -> SDL_InitFlags, ty)
hasField =
    \SDL_InitFlags
x0 ->
      ( \ty
y1 ->
          SDL_InitFlags{unwrap :: Uint32
unwrap = ty
Uint32
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_InitFlags
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "unwrap" (BG.Ptr SDL_InitFlags) (BG.Ptr ty)
  where
  getField :: Ptr SDL_InitFlags -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_InitFlags -> Ptr (CFieldType SDL_InitFlags "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_InitFlags "unwrap" where
  type
    CFieldType SDL_InitFlags "unwrap" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_InitFlags -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_InitFlags
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | @'sDL_INIT_AUDIO'@ implies @'sDL_INIT_EVENTS'@
--
--     [C declaration]: @macro SDL_INIT_AUDIO@, defined at @SDL3\/SDL_init.h 80:9@
sDL_INIT_AUDIO :: BG.CUInt
sDL_INIT_AUDIO :: CUInt
sDL_INIT_AUDIO = (CUInt
16 :: BG.CUInt)

-- | @'sDL_INIT_VIDEO'@ implies @'sDL_INIT_EVENTS'@, should be initialized on the main thread
--
--     [C declaration]: @macro SDL_INIT_VIDEO@, defined at @SDL3\/SDL_init.h 81:9@
sDL_INIT_VIDEO :: BG.CUInt
sDL_INIT_VIDEO :: CUInt
sDL_INIT_VIDEO = (CUInt
32 :: BG.CUInt)

-- | @'sDL_INIT_JOYSTICK'@ implies @'sDL_INIT_EVENTS'@
--
--     [C declaration]: @macro SDL_INIT_JOYSTICK@, defined at @SDL3\/SDL_init.h 82:9@
sDL_INIT_JOYSTICK :: BG.CUInt
sDL_INIT_JOYSTICK :: CUInt
sDL_INIT_JOYSTICK = (CUInt
512 :: BG.CUInt)

-- | [C declaration]: @macro SDL_INIT_HAPTIC@, defined at @SDL3\/SDL_init.h 83:9@
sDL_INIT_HAPTIC :: BG.CUInt
sDL_INIT_HAPTIC :: CUInt
sDL_INIT_HAPTIC = (CUInt
4096 :: BG.CUInt)

-- | @'sDL_INIT_GAMEPAD'@ implies @'sDL_INIT_JOYSTICK'@
--
--     [C declaration]: @macro SDL_INIT_GAMEPAD@, defined at @SDL3\/SDL_init.h 84:9@
sDL_INIT_GAMEPAD :: BG.CUInt
sDL_INIT_GAMEPAD :: CUInt
sDL_INIT_GAMEPAD = (CUInt
8192 :: BG.CUInt)

-- | [C declaration]: @macro SDL_INIT_EVENTS@, defined at @SDL3\/SDL_init.h 85:9@
sDL_INIT_EVENTS :: BG.CUInt
sDL_INIT_EVENTS :: CUInt
sDL_INIT_EVENTS = (CUInt
16384 :: BG.CUInt)

-- | @'sDL_INIT_SENSOR'@ implies @'sDL_INIT_EVENTS'@
--
--     [C declaration]: @macro SDL_INIT_SENSOR@, defined at @SDL3\/SDL_init.h 86:9@
sDL_INIT_SENSOR :: BG.CUInt
sDL_INIT_SENSOR :: CUInt
sDL_INIT_SENSOR = (CUInt
32768 :: BG.CUInt)

-- | @'sDL_INIT_CAMERA'@ implies @'sDL_INIT_EVENTS'@
--
--     [C declaration]: @macro SDL_INIT_CAMERA@, defined at @SDL3\/SDL_init.h 87:9@
sDL_INIT_CAMERA :: BG.CUInt
sDL_INIT_CAMERA :: CUInt
sDL_INIT_CAMERA = (CUInt
65536 :: BG.CUInt)

-- | Return values for optional main callbacks.
--
--     Returning SDL_APP_SUCCESS or SDL_APP_FAILURE from SDL_AppInit, SDL_AppEvent, or SDL_AppIterate will terminate the program and report success\/failure to the operating system. What that means is platform-dependent. On Unix, for example, on success, the process error code will be zero, and on failure it will be 1. This interface doesn\'t allow you to return specific exit codes, just whether there was an error generally or not.
--
--     Returning SDL_APP_CONTINUE from these functions will let the app continue to run.
--
--     See [Main callbacks in SDL3](https://wiki.libsdl.org/SDL3/README-main-functions#main-callbacks-in-sdl3) for complete details.
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_AppResult@, defined at @SDL3\/SDL_init.h 109:14@
newtype SDL_AppResult = SDL_AppResult
  { SDL_AppResult -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_AppResult -> Rep SDL_AppResult x)
-> (forall x. Rep SDL_AppResult x -> SDL_AppResult)
-> Generic SDL_AppResult
forall x. Rep SDL_AppResult x -> SDL_AppResult
forall x. SDL_AppResult -> Rep SDL_AppResult x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppResult -> Rep SDL_AppResult x
from :: forall x. SDL_AppResult -> Rep SDL_AppResult x
$cto :: forall x. Rep SDL_AppResult x -> SDL_AppResult
to :: forall x. Rep SDL_AppResult x -> SDL_AppResult
BG.Generic, SDL_AppResult -> SDL_AppResult -> Bool
(SDL_AppResult -> SDL_AppResult -> Bool)
-> (SDL_AppResult -> SDL_AppResult -> Bool) -> Eq SDL_AppResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_AppResult -> SDL_AppResult -> Bool
== :: SDL_AppResult -> SDL_AppResult -> Bool
$c/= :: SDL_AppResult -> SDL_AppResult -> Bool
/= :: SDL_AppResult -> SDL_AppResult -> Bool
Eq, Eq SDL_AppResult
Eq SDL_AppResult =>
(SDL_AppResult -> SDL_AppResult -> Ordering)
-> (SDL_AppResult -> SDL_AppResult -> Bool)
-> (SDL_AppResult -> SDL_AppResult -> Bool)
-> (SDL_AppResult -> SDL_AppResult -> Bool)
-> (SDL_AppResult -> SDL_AppResult -> Bool)
-> (SDL_AppResult -> SDL_AppResult -> SDL_AppResult)
-> (SDL_AppResult -> SDL_AppResult -> SDL_AppResult)
-> Ord SDL_AppResult
SDL_AppResult -> SDL_AppResult -> Bool
SDL_AppResult -> SDL_AppResult -> Ordering
SDL_AppResult -> SDL_AppResult -> SDL_AppResult
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_AppResult -> SDL_AppResult -> Ordering
compare :: SDL_AppResult -> SDL_AppResult -> Ordering
$c< :: SDL_AppResult -> SDL_AppResult -> Bool
< :: SDL_AppResult -> SDL_AppResult -> Bool
$c<= :: SDL_AppResult -> SDL_AppResult -> Bool
<= :: SDL_AppResult -> SDL_AppResult -> Bool
$c> :: SDL_AppResult -> SDL_AppResult -> Bool
> :: SDL_AppResult -> SDL_AppResult -> Bool
$c>= :: SDL_AppResult -> SDL_AppResult -> Bool
>= :: SDL_AppResult -> SDL_AppResult -> Bool
$cmax :: SDL_AppResult -> SDL_AppResult -> SDL_AppResult
max :: SDL_AppResult -> SDL_AppResult -> SDL_AppResult
$cmin :: SDL_AppResult -> SDL_AppResult -> SDL_AppResult
min :: SDL_AppResult -> SDL_AppResult -> SDL_AppResult
Ord)
  deriving newtype (FFIType SDL_AppResult -> SDL_AppResult
SDL_AppResult -> FFIType SDL_AppResult
(SDL_AppResult -> FFIType SDL_AppResult)
-> (FFIType SDL_AppResult -> SDL_AppResult)
-> HasFFIType SDL_AppResult
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_AppResult -> FFIType SDL_AppResult
toFFIType :: SDL_AppResult -> FFIType SDL_AppResult
$cfromFFIType :: FFIType SDL_AppResult -> SDL_AppResult
fromFFIType :: FFIType SDL_AppResult -> SDL_AppResult
BG.HasFFIType)

instance Marshal.StaticSize SDL_AppResult where
  staticSizeOf :: Proxy SDL_AppResult -> Int
staticSizeOf = \Proxy SDL_AppResult
_ -> (Int
4 :: Int)

  staticAlignment :: Proxy SDL_AppResult -> Int
staticAlignment = \Proxy SDL_AppResult
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_AppResult where
  readRaw :: Ptr SDL_AppResult -> IO SDL_AppResult
readRaw =
    \Ptr SDL_AppResult
ptr0 ->
      (CUInt -> SDL_AppResult) -> IO (CUInt -> SDL_AppResult)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CUInt -> SDL_AppResult
SDL_AppResult
        IO (CUInt -> SDL_AppResult) -> IO CUInt -> IO SDL_AppResult
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Ptr SDL_AppResult -> Int -> IO CUInt
forall a b. ReadRaw a => Ptr b -> Int -> IO a
Marshal.readRawByteOff Ptr SDL_AppResult
ptr0 (Int
0 :: Int)

instance Marshal.WriteRaw SDL_AppResult where
  writeRaw :: Ptr SDL_AppResult -> SDL_AppResult -> IO ()
writeRaw =
    \Ptr SDL_AppResult
ptr0 ->
      \SDL_AppResult
s1 ->
        case SDL_AppResult
s1 of
          SDL_AppResult CUInt
unwrap2 ->
            Ptr SDL_AppResult -> Int -> CUInt -> IO ()
forall a b. WriteRaw a => Ptr b -> Int -> a -> IO ()
Marshal.writeRawByteOff Ptr SDL_AppResult
ptr0 (Int
0 :: Int) CUInt
unwrap2

deriving via Marshal.EquivStorable SDL_AppResult instance BG.Storable SDL_AppResult

deriving via BG.CUInt instance BG.Prim SDL_AppResult

instance CEnum.CEnum SDL_AppResult where
  type CEnumZ SDL_AppResult = BG.CUInt

  toCEnum :: CEnumZ SDL_AppResult -> SDL_AppResult
toCEnum = CUInt -> SDL_AppResult
CEnumZ SDL_AppResult -> SDL_AppResult
SDL_AppResult

  fromCEnum :: SDL_AppResult -> CEnumZ SDL_AppResult
fromCEnum = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap"

  declaredValues :: forall (proxy :: * -> *).
proxy SDL_AppResult -> DeclaredValues SDL_AppResult
declaredValues =
    \proxy SDL_AppResult
_ ->
      [(CEnumZ SDL_AppResult, NonEmpty String)]
-> DeclaredValues SDL_AppResult
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_AppResult
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_APP_CONTINUE")
        , (CUInt
CEnumZ SDL_AppResult
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_APP_SUCCESS")
        , (CUInt
CEnumZ SDL_AppResult
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_APP_FAILURE")
        ]

  showsUndeclared :: forall (proxy :: * -> *).
proxy SDL_AppResult -> Int -> CEnumZ SDL_AppResult -> ShowS
showsUndeclared =
    String
-> proxy SDL_AppResult -> Int -> CEnumZ SDL_AppResult -> ShowS
forall a (proxy :: * -> *).
Show (CEnumZ a) =>
String -> proxy a -> Int -> CEnumZ a -> ShowS
CEnum.showsWrappedUndeclared String
"SDL_AppResult"

  readPrecUndeclared :: ReadPrec SDL_AppResult
readPrecUndeclared =
    String -> ReadPrec SDL_AppResult
forall a. (CEnum a, Read (CEnumZ a)) => String -> ReadPrec a
CEnum.readPrecWrappedUndeclared String
"SDL_AppResult"

  isDeclared :: SDL_AppResult -> Bool
isDeclared = SDL_AppResult -> Bool
forall a. SequentialCEnum a => a -> Bool
CEnum.seqIsDeclared

  mkDeclared :: CEnumZ SDL_AppResult -> Maybe SDL_AppResult
mkDeclared = CEnumZ SDL_AppResult -> Maybe SDL_AppResult
forall a. SequentialCEnum a => CEnumZ a -> Maybe a
CEnum.seqMkDeclared

instance CEnum.SequentialCEnum SDL_AppResult where
  minDeclaredValue :: SDL_AppResult
minDeclaredValue = SDL_AppResult
SDL_APP_CONTINUE

  maxDeclaredValue :: SDL_AppResult
maxDeclaredValue = SDL_AppResult
SDL_APP_FAILURE

instance Show SDL_AppResult where
  showsPrec :: Int -> SDL_AppResult -> ShowS
showsPrec = Int -> SDL_AppResult -> ShowS
forall a. CEnum a => Int -> a -> ShowS
CEnum.shows

instance Read SDL_AppResult where
  readPrec :: ReadPrec SDL_AppResult
readPrec = ReadPrec SDL_AppResult
forall a. CEnum a => ReadPrec a
CEnum.readPrec

  readList :: ReadS [SDL_AppResult]
readList = ReadS [SDL_AppResult]
forall a. Read a => ReadS [a]
BG.readListDefault

  readListPrec :: ReadPrec [SDL_AppResult]
readListPrec = ReadPrec [SDL_AppResult]
forall a. Read a => ReadPrec [a]
BG.readListPrecDefault

instance
  (ty ~ BG.CUInt)
  => BG.CompatHasField.HasField "unwrap" SDL_AppResult ty
  where
  hasField :: SDL_AppResult -> (ty -> SDL_AppResult, ty)
hasField =
    \SDL_AppResult
x0 ->
      ( \ty
y1 ->
          SDL_AppResult{unwrap :: CUInt
unwrap = ty
CUInt
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppResult
x0
      )

instance
  (ty ~ BG.CUInt)
  => BG.HasField "unwrap" (BG.Ptr SDL_AppResult) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppResult -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppResult -> Ptr (CFieldType SDL_AppResult "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppResult "unwrap" where
  type CFieldType SDL_AppResult "unwrap" = BG.CUInt

  offset# :: Proxy# SDL_AppResult -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppResult
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Value that requests that the app continue from the main callbacks.
--
--     [C declaration]: @SDL_APP_CONTINUE@, defined at @SDL3\/SDL_init.h 111:5@
pattern SDL_APP_CONTINUE :: SDL_AppResult
pattern $mSDL_APP_CONTINUE :: forall {r}. SDL_AppResult -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_APP_CONTINUE :: SDL_AppResult
SDL_APP_CONTINUE = SDL_AppResult 0

-- | Value that requests termination with success from the main callbacks.
--
--     [C declaration]: @SDL_APP_SUCCESS@, defined at @SDL3\/SDL_init.h 112:5@
pattern SDL_APP_SUCCESS :: SDL_AppResult
pattern $mSDL_APP_SUCCESS :: forall {r}. SDL_AppResult -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_APP_SUCCESS :: SDL_AppResult
SDL_APP_SUCCESS = SDL_AppResult 1

-- | Value that requests termination with error from the main callbacks.
--
--     [C declaration]: @SDL_APP_FAILURE@, defined at @SDL3\/SDL_init.h 113:5@
pattern SDL_APP_FAILURE :: SDL_AppResult
pattern $mSDL_APP_FAILURE :: forall {r}. SDL_AppResult -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_APP_FAILURE :: SDL_AppResult
SDL_APP_FAILURE = SDL_AppResult 2

-- | Auxiliary type used by 'SDL_AppInit_func'
--
--     [C declaration]: @SDL_AppInit_func@, defined at @SDL3\/SDL_init.h 133:33@
newtype SDL_AppInit_func_Aux = SDL_AppInit_func_Aux
  { SDL_AppInit_func_Aux
-> Ptr (Ptr Void)
-> CInt
-> Ptr (Elem (IncompleteArray (Ptr CChar)))
-> IO SDL_AppResult
unwrap
      :: BG.Ptr (BG.Ptr BG.Void)
      -> BG.CInt
      -> BG.Ptr (IsA.Elem (IA.IncompleteArray (BG.Ptr BG.CChar)))
      -> IO SDL_AppResult
  }
  deriving stock ((forall x. SDL_AppInit_func_Aux -> Rep SDL_AppInit_func_Aux x)
-> (forall x. Rep SDL_AppInit_func_Aux x -> SDL_AppInit_func_Aux)
-> Generic SDL_AppInit_func_Aux
forall x. Rep SDL_AppInit_func_Aux x -> SDL_AppInit_func_Aux
forall x. SDL_AppInit_func_Aux -> Rep SDL_AppInit_func_Aux x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppInit_func_Aux -> Rep SDL_AppInit_func_Aux x
from :: forall x. SDL_AppInit_func_Aux -> Rep SDL_AppInit_func_Aux x
$cto :: forall x. Rep SDL_AppInit_func_Aux x -> SDL_AppInit_func_Aux
to :: forall x. Rep SDL_AppInit_func_Aux x -> SDL_AppInit_func_Aux
BG.Generic)

-- __unique:__ @toSDL_AppInit_func_Aux@
foreign import ccall safe "wrapper"
  hs_bindgen_c9f12691f8f9f34d_base
    :: (BG.Ptr BG.Void -> BG.CInt -> BG.Ptr BG.Void -> IO BG.CUInt)
    -> IO (BG.FunPtr (BG.Ptr BG.Void -> BG.CInt -> BG.Ptr BG.Void -> IO BG.CUInt))

-- __unique:__ @toSDL_AppInit_func_Aux@
hs_bindgen_c9f12691f8f9f34d
  :: SDL_AppInit_func_Aux
  -> IO (BG.FunPtr SDL_AppInit_func_Aux)
hs_bindgen_c9f12691f8f9f34d :: SDL_AppInit_func_Aux -> IO (FunPtr SDL_AppInit_func_Aux)
hs_bindgen_c9f12691f8f9f34d =
  \SDL_AppInit_func_Aux
fun0 ->
    (FunPtr (Ptr Void -> CInt -> Ptr Void -> IO CUInt)
 -> FunPtr SDL_AppInit_func_Aux)
-> IO (FunPtr (Ptr Void -> CInt -> Ptr Void -> IO CUInt))
-> IO (FunPtr SDL_AppInit_func_Aux)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
      FunPtr (Ptr Void -> CInt -> Ptr Void -> IO CUInt)
-> FunPtr SDL_AppInit_func_Aux
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr
      ( (Ptr Void -> CInt -> Ptr Void -> IO CUInt)
-> IO (FunPtr (Ptr Void -> CInt -> Ptr Void -> IO CUInt))
hs_bindgen_c9f12691f8f9f34d_base
          ( \Ptr Void
x1 ->
              \CInt
x2 ->
                \Ptr Void
x3 ->
                  (SDL_AppResult -> CUInt) -> IO SDL_AppResult -> IO CUInt
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
                    SDL_AppResult -> CUInt
SDL_AppResult -> FFIType SDL_AppResult
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType
                    (forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppInit_func_Aux
fun0 (FFIType (Ptr (Ptr Void)) -> Ptr (Ptr Void)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType Ptr Void
FFIType (Ptr (Ptr Void))
x1) (FFIType CInt -> CInt
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType CInt
FFIType CInt
x2) (FFIType (Ptr (Ptr CChar)) -> Ptr (Ptr CChar)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType Ptr Void
FFIType (Ptr (Ptr CChar))
x3))
          )
      )

-- __unique:__ @fromSDL_AppInit_func_Aux@
foreign import ccall safe "dynamic"
  hs_bindgen_1ceb806dcbf0a04a_base
    :: BG.FunPtr (BG.Ptr BG.Void -> BG.CInt -> BG.Ptr BG.Void -> IO BG.CUInt)
    -> BG.Ptr BG.Void
    -> BG.CInt
    -> BG.Ptr BG.Void
    -> IO BG.CUInt

-- __unique:__ @fromSDL_AppInit_func_Aux@
hs_bindgen_1ceb806dcbf0a04a
  :: BG.FunPtr SDL_AppInit_func_Aux
  -> SDL_AppInit_func_Aux
hs_bindgen_1ceb806dcbf0a04a :: FunPtr SDL_AppInit_func_Aux -> SDL_AppInit_func_Aux
hs_bindgen_1ceb806dcbf0a04a =
  \FunPtr SDL_AppInit_func_Aux
funPtr0 ->
    (Ptr (Ptr Void)
 -> CInt
 -> Ptr (Elem (IncompleteArray (Ptr CChar)))
 -> IO SDL_AppResult)
-> SDL_AppInit_func_Aux
SDL_AppInit_func_Aux
      ( \Ptr (Ptr Void)
x1 ->
          \CInt
x2 ->
            \Ptr (Elem (IncompleteArray (Ptr CChar)))
x3 ->
              (CUInt -> SDL_AppResult) -> IO CUInt -> IO SDL_AppResult
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
                CUInt -> SDL_AppResult
FFIType SDL_AppResult -> SDL_AppResult
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType
                ( FunPtr (Ptr Void -> CInt -> Ptr Void -> IO CUInt)
-> Ptr Void -> CInt -> Ptr Void -> IO CUInt
hs_bindgen_1ceb806dcbf0a04a_base
                    (FunPtr SDL_AppInit_func_Aux
-> FunPtr (Ptr Void -> CInt -> Ptr Void -> IO CUInt)
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr FunPtr SDL_AppInit_func_Aux
funPtr0)
                    (Ptr (Ptr Void) -> FFIType (Ptr (Ptr Void))
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr (Ptr Void)
x1)
                    (CInt -> FFIType CInt
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType CInt
x2)
                    (Ptr (Ptr CChar) -> FFIType (Ptr (Ptr CChar))
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr (Ptr CChar)
Ptr (Elem (IncompleteArray (Ptr CChar)))
x3)
                )
      )

instance BG.ToFunPtr SDL_AppInit_func_Aux where
  toFunPtr :: SDL_AppInit_func_Aux -> IO (FunPtr SDL_AppInit_func_Aux)
toFunPtr = SDL_AppInit_func_Aux -> IO (FunPtr SDL_AppInit_func_Aux)
hs_bindgen_c9f12691f8f9f34d

instance BG.FromFunPtr SDL_AppInit_func_Aux where
  fromFunPtr :: FunPtr SDL_AppInit_func_Aux -> SDL_AppInit_func_Aux
fromFunPtr = FunPtr SDL_AppInit_func_Aux -> SDL_AppInit_func_Aux
hs_bindgen_1ceb806dcbf0a04a

instance
  ( ty
      ~ ( BG.Ptr (BG.Ptr BG.Void)
          -> BG.CInt
          -> BG.Ptr (IsA.Elem (IA.IncompleteArray (BG.Ptr BG.CChar)))
          -> IO SDL_AppResult
        )
  )
  => BG.CompatHasField.HasField "unwrap" SDL_AppInit_func_Aux ty
  where
  hasField :: SDL_AppInit_func_Aux -> (ty -> SDL_AppInit_func_Aux, ty)
hasField =
    \SDL_AppInit_func_Aux
x0 ->
      ( \ty
y1 ->
          SDL_AppInit_func_Aux{unwrap :: Ptr (Ptr Void)
-> CInt
-> Ptr (Elem (IncompleteArray (Ptr CChar)))
-> IO SDL_AppResult
unwrap = ty
Ptr (Ptr Void)
-> CInt
-> Ptr (Elem (IncompleteArray (Ptr CChar)))
-> IO SDL_AppResult
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppInit_func_Aux
x0
      )

instance
  ( ty
      ~ ( BG.Ptr (BG.Ptr BG.Void)
          -> BG.CInt
          -> BG.Ptr (IsA.Elem (IA.IncompleteArray (BG.Ptr BG.CChar)))
          -> IO SDL_AppResult
        )
  )
  => BG.HasField "unwrap" (BG.Ptr SDL_AppInit_func_Aux) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppInit_func_Aux -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppInit_func_Aux
-> Ptr (CFieldType SDL_AppInit_func_Aux "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppInit_func_Aux "unwrap" where
  type
    CFieldType SDL_AppInit_func_Aux "unwrap" =
      BG.Ptr (BG.Ptr BG.Void)
      -> BG.CInt
      -> BG.Ptr (IsA.Elem (IA.IncompleteArray (BG.Ptr BG.CChar)))
      -> IO SDL_AppResult

  offset# :: Proxy# SDL_AppInit_func_Aux -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppInit_func_Aux
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Function pointer typedef for SDL_AppInit.
--
--     These are used by SDL_EnterAppMainCallbacks. This mechanism operates behind the scenes for apps using the optional main callbacks. Apps that want to use this should just implement SDL_AppInit directly.
--
--     [@appstate@]: a place where the app can optionally store a pointer for future use.
--
--     [@argc@]: the standard ANSI C main\'s argc; number of elements in @argv@.
--
--     [@argv@]: the standard ANSI C main\'s argv; array of command line arguments.
--
--     [Returns]: SDL_APP_FAILURE to terminate with an error, SDL_APP_SUCCESS to terminate with success, SDL_APP_CONTINUE to continue.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_AppInit_func@, defined at @SDL3\/SDL_init.h 133:33@
newtype SDL_AppInit_func = SDL_AppInit_func
  { SDL_AppInit_func -> FunPtr SDL_AppInit_func_Aux
unwrap :: BG.FunPtr SDL_AppInit_func_Aux
  }
  deriving stock ((forall x. SDL_AppInit_func -> Rep SDL_AppInit_func x)
-> (forall x. Rep SDL_AppInit_func x -> SDL_AppInit_func)
-> Generic SDL_AppInit_func
forall x. Rep SDL_AppInit_func x -> SDL_AppInit_func
forall x. SDL_AppInit_func -> Rep SDL_AppInit_func x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppInit_func -> Rep SDL_AppInit_func x
from :: forall x. SDL_AppInit_func -> Rep SDL_AppInit_func x
$cto :: forall x. Rep SDL_AppInit_func x -> SDL_AppInit_func
to :: forall x. Rep SDL_AppInit_func x -> SDL_AppInit_func
BG.Generic, SDL_AppInit_func -> SDL_AppInit_func -> Bool
(SDL_AppInit_func -> SDL_AppInit_func -> Bool)
-> (SDL_AppInit_func -> SDL_AppInit_func -> Bool)
-> Eq SDL_AppInit_func
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
== :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
$c/= :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
/= :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
Eq, Eq SDL_AppInit_func
Eq SDL_AppInit_func =>
(SDL_AppInit_func -> SDL_AppInit_func -> Ordering)
-> (SDL_AppInit_func -> SDL_AppInit_func -> Bool)
-> (SDL_AppInit_func -> SDL_AppInit_func -> Bool)
-> (SDL_AppInit_func -> SDL_AppInit_func -> Bool)
-> (SDL_AppInit_func -> SDL_AppInit_func -> Bool)
-> (SDL_AppInit_func -> SDL_AppInit_func -> SDL_AppInit_func)
-> (SDL_AppInit_func -> SDL_AppInit_func -> SDL_AppInit_func)
-> Ord SDL_AppInit_func
SDL_AppInit_func -> SDL_AppInit_func -> Bool
SDL_AppInit_func -> SDL_AppInit_func -> Ordering
SDL_AppInit_func -> SDL_AppInit_func -> SDL_AppInit_func
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_AppInit_func -> SDL_AppInit_func -> Ordering
compare :: SDL_AppInit_func -> SDL_AppInit_func -> Ordering
$c< :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
< :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
$c<= :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
<= :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
$c> :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
> :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
$c>= :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
>= :: SDL_AppInit_func -> SDL_AppInit_func -> Bool
$cmax :: SDL_AppInit_func -> SDL_AppInit_func -> SDL_AppInit_func
max :: SDL_AppInit_func -> SDL_AppInit_func -> SDL_AppInit_func
$cmin :: SDL_AppInit_func -> SDL_AppInit_func -> SDL_AppInit_func
min :: SDL_AppInit_func -> SDL_AppInit_func -> SDL_AppInit_func
Ord, Int -> SDL_AppInit_func -> ShowS
[SDL_AppInit_func] -> ShowS
SDL_AppInit_func -> String
(Int -> SDL_AppInit_func -> ShowS)
-> (SDL_AppInit_func -> String)
-> ([SDL_AppInit_func] -> ShowS)
-> Show SDL_AppInit_func
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_AppInit_func -> ShowS
showsPrec :: Int -> SDL_AppInit_func -> ShowS
$cshow :: SDL_AppInit_func -> String
show :: SDL_AppInit_func -> String
$cshowList :: [SDL_AppInit_func] -> ShowS
showList :: [SDL_AppInit_func] -> ShowS
Show)
  deriving newtype
    ( FFIType SDL_AppInit_func -> SDL_AppInit_func
SDL_AppInit_func -> FFIType SDL_AppInit_func
(SDL_AppInit_func -> FFIType SDL_AppInit_func)
-> (FFIType SDL_AppInit_func -> SDL_AppInit_func)
-> HasFFIType SDL_AppInit_func
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_AppInit_func -> FFIType SDL_AppInit_func
toFFIType :: SDL_AppInit_func -> FFIType SDL_AppInit_func
$cfromFFIType :: FFIType SDL_AppInit_func -> SDL_AppInit_func
fromFFIType :: FFIType SDL_AppInit_func -> SDL_AppInit_func
BG.HasFFIType
    , Ptr SDL_AppInit_func -> IO SDL_AppInit_func
Ptr SDL_AppInit_func -> Int -> IO SDL_AppInit_func
Ptr SDL_AppInit_func -> Int -> SDL_AppInit_func -> IO ()
Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ()
SDL_AppInit_func -> Int
(SDL_AppInit_func -> Int)
-> (SDL_AppInit_func -> Int)
-> (Ptr SDL_AppInit_func -> Int -> IO SDL_AppInit_func)
-> (Ptr SDL_AppInit_func -> Int -> SDL_AppInit_func -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_AppInit_func)
-> (forall b. Ptr b -> Int -> SDL_AppInit_func -> IO ())
-> (Ptr SDL_AppInit_func -> IO SDL_AppInit_func)
-> (Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ())
-> Storable SDL_AppInit_func
forall b. Ptr b -> Int -> IO SDL_AppInit_func
forall b. Ptr b -> Int -> SDL_AppInit_func -> 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
$csizeOf :: SDL_AppInit_func -> Int
sizeOf :: SDL_AppInit_func -> Int
$calignment :: SDL_AppInit_func -> Int
alignment :: SDL_AppInit_func -> Int
$cpeekElemOff :: Ptr SDL_AppInit_func -> Int -> IO SDL_AppInit_func
peekElemOff :: Ptr SDL_AppInit_func -> Int -> IO SDL_AppInit_func
$cpokeElemOff :: Ptr SDL_AppInit_func -> Int -> SDL_AppInit_func -> IO ()
pokeElemOff :: Ptr SDL_AppInit_func -> Int -> SDL_AppInit_func -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppInit_func
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppInit_func
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_AppInit_func -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_AppInit_func -> IO ()
$cpeek :: Ptr SDL_AppInit_func -> IO SDL_AppInit_func
peek :: Ptr SDL_AppInit_func -> IO SDL_AppInit_func
$cpoke :: Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ()
poke :: Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ()
BG.Storable
    , Ptr SDL_AppInit_func -> IO SDL_AppInit_func
(Ptr SDL_AppInit_func -> IO SDL_AppInit_func)
-> ReadRaw SDL_AppInit_func
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_AppInit_func -> IO SDL_AppInit_func
readRaw :: Ptr SDL_AppInit_func -> IO SDL_AppInit_func
Marshal.ReadRaw
    , Proxy SDL_AppInit_func -> Int
(Proxy SDL_AppInit_func -> Int)
-> (Proxy SDL_AppInit_func -> Int) -> StaticSize SDL_AppInit_func
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_AppInit_func -> Int
staticSizeOf :: Proxy SDL_AppInit_func -> Int
$cstaticAlignment :: Proxy SDL_AppInit_func -> Int
staticAlignment :: Proxy SDL_AppInit_func -> Int
Marshal.StaticSize
    , Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ()
(Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ())
-> WriteRaw SDL_AppInit_func
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ()
writeRaw :: Ptr SDL_AppInit_func -> SDL_AppInit_func -> IO ()
Marshal.WriteRaw
    )

instance
  (ty ~ BG.FunPtr SDL_AppInit_func_Aux)
  => BG.CompatHasField.HasField "unwrap" SDL_AppInit_func ty
  where
  hasField :: SDL_AppInit_func -> (ty -> SDL_AppInit_func, ty)
hasField =
    \SDL_AppInit_func
x0 ->
      ( \ty
y1 ->
          SDL_AppInit_func{unwrap :: FunPtr SDL_AppInit_func_Aux
unwrap = ty
FunPtr SDL_AppInit_func_Aux
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppInit_func
x0
      )

instance
  (ty ~ BG.FunPtr SDL_AppInit_func_Aux)
  => BG.HasField "unwrap" (BG.Ptr SDL_AppInit_func) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppInit_func -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppInit_func
-> Ptr (CFieldType SDL_AppInit_func "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppInit_func "unwrap" where
  type
    CFieldType SDL_AppInit_func "unwrap" =
      BG.FunPtr SDL_AppInit_func_Aux

  offset# :: Proxy# SDL_AppInit_func -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppInit_func
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Auxiliary type used by 'SDL_AppIterate_func'
--
--     [C declaration]: @SDL_AppIterate_func@, defined at @SDL3\/SDL_init.h 148:33@
newtype SDL_AppIterate_func_Aux = SDL_AppIterate_func_Aux
  { SDL_AppIterate_func_Aux -> Ptr Void -> IO SDL_AppResult
unwrap :: BG.Ptr BG.Void -> IO SDL_AppResult
  }
  deriving stock ((forall x.
 SDL_AppIterate_func_Aux -> Rep SDL_AppIterate_func_Aux x)
-> (forall x.
    Rep SDL_AppIterate_func_Aux x -> SDL_AppIterate_func_Aux)
-> Generic SDL_AppIterate_func_Aux
forall x. Rep SDL_AppIterate_func_Aux x -> SDL_AppIterate_func_Aux
forall x. SDL_AppIterate_func_Aux -> Rep SDL_AppIterate_func_Aux x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppIterate_func_Aux -> Rep SDL_AppIterate_func_Aux x
from :: forall x. SDL_AppIterate_func_Aux -> Rep SDL_AppIterate_func_Aux x
$cto :: forall x. Rep SDL_AppIterate_func_Aux x -> SDL_AppIterate_func_Aux
to :: forall x. Rep SDL_AppIterate_func_Aux x -> SDL_AppIterate_func_Aux
BG.Generic)

-- __unique:__ @toSDL_AppIterate_func_Aux@
foreign import ccall safe "wrapper"
  hs_bindgen_8620c17cf1102621_base
    :: (BG.Ptr BG.Void -> IO BG.CUInt)
    -> IO (BG.FunPtr (BG.Ptr BG.Void -> IO BG.CUInt))

-- __unique:__ @toSDL_AppIterate_func_Aux@
hs_bindgen_8620c17cf1102621
  :: SDL_AppIterate_func_Aux
  -> IO (BG.FunPtr SDL_AppIterate_func_Aux)
hs_bindgen_8620c17cf1102621 :: SDL_AppIterate_func_Aux -> IO (FunPtr SDL_AppIterate_func_Aux)
hs_bindgen_8620c17cf1102621 =
  \SDL_AppIterate_func_Aux
fun0 ->
    (FunPtr (Ptr Void -> IO CUInt) -> FunPtr SDL_AppIterate_func_Aux)
-> IO (FunPtr (Ptr Void -> IO CUInt))
-> IO (FunPtr SDL_AppIterate_func_Aux)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
      FunPtr (Ptr Void -> IO CUInt) -> FunPtr SDL_AppIterate_func_Aux
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr
      ( (Ptr Void -> IO CUInt) -> IO (FunPtr (Ptr Void -> IO CUInt))
hs_bindgen_8620c17cf1102621_base
          ( \Ptr Void
x1 ->
              (SDL_AppResult -> CUInt) -> IO SDL_AppResult -> IO CUInt
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap SDL_AppResult -> CUInt
SDL_AppResult -> FFIType SDL_AppResult
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType (forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppIterate_func_Aux
fun0 (FFIType (Ptr Void) -> Ptr Void
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType Ptr Void
FFIType (Ptr Void)
x1))
          )
      )

-- __unique:__ @fromSDL_AppIterate_func_Aux@
foreign import ccall safe "dynamic"
  hs_bindgen_eafa84799a5f2ef1_base
    :: BG.FunPtr (BG.Ptr BG.Void -> IO BG.CUInt)
    -> BG.Ptr BG.Void
    -> IO BG.CUInt

-- __unique:__ @fromSDL_AppIterate_func_Aux@
hs_bindgen_eafa84799a5f2ef1
  :: BG.FunPtr SDL_AppIterate_func_Aux
  -> SDL_AppIterate_func_Aux
hs_bindgen_eafa84799a5f2ef1 :: FunPtr SDL_AppIterate_func_Aux -> SDL_AppIterate_func_Aux
hs_bindgen_eafa84799a5f2ef1 =
  \FunPtr SDL_AppIterate_func_Aux
funPtr0 ->
    (Ptr Void -> IO SDL_AppResult) -> SDL_AppIterate_func_Aux
SDL_AppIterate_func_Aux
      ( \Ptr Void
x1 ->
          (CUInt -> SDL_AppResult) -> IO CUInt -> IO SDL_AppResult
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap CUInt -> SDL_AppResult
FFIType SDL_AppResult -> SDL_AppResult
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType (FunPtr (Ptr Void -> IO CUInt) -> Ptr Void -> IO CUInt
hs_bindgen_eafa84799a5f2ef1_base (FunPtr SDL_AppIterate_func_Aux -> FunPtr (Ptr Void -> IO CUInt)
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr FunPtr SDL_AppIterate_func_Aux
funPtr0) (Ptr Void -> FFIType (Ptr Void)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr Void
x1))
      )

instance BG.ToFunPtr SDL_AppIterate_func_Aux where
  toFunPtr :: SDL_AppIterate_func_Aux -> IO (FunPtr SDL_AppIterate_func_Aux)
toFunPtr = SDL_AppIterate_func_Aux -> IO (FunPtr SDL_AppIterate_func_Aux)
hs_bindgen_8620c17cf1102621

instance BG.FromFunPtr SDL_AppIterate_func_Aux where
  fromFunPtr :: FunPtr SDL_AppIterate_func_Aux -> SDL_AppIterate_func_Aux
fromFunPtr = FunPtr SDL_AppIterate_func_Aux -> SDL_AppIterate_func_Aux
hs_bindgen_eafa84799a5f2ef1

instance
  (ty ~ (BG.Ptr BG.Void -> IO SDL_AppResult))
  => BG.CompatHasField.HasField "unwrap" SDL_AppIterate_func_Aux ty
  where
  hasField :: SDL_AppIterate_func_Aux -> (ty -> SDL_AppIterate_func_Aux, ty)
hasField =
    \SDL_AppIterate_func_Aux
x0 ->
      ( \ty
y1 ->
          SDL_AppIterate_func_Aux{unwrap :: Ptr Void -> IO SDL_AppResult
unwrap = ty
Ptr Void -> IO SDL_AppResult
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppIterate_func_Aux
x0
      )

instance
  (ty ~ (BG.Ptr BG.Void -> IO SDL_AppResult))
  => BG.HasField "unwrap" (BG.Ptr SDL_AppIterate_func_Aux) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppIterate_func_Aux -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppIterate_func_Aux
-> Ptr (CFieldType SDL_AppIterate_func_Aux "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppIterate_func_Aux "unwrap" where
  type
    CFieldType SDL_AppIterate_func_Aux "unwrap" =
      BG.Ptr BG.Void -> IO SDL_AppResult

  offset# :: Proxy# SDL_AppIterate_func_Aux -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppIterate_func_Aux
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Function pointer typedef for SDL_AppIterate.
--
--     These are used by SDL_EnterAppMainCallbacks. This mechanism operates behind the scenes for apps using the optional main callbacks. Apps that want to use this should just implement SDL_AppIterate directly.
--
--     [@appstate@]: an optional pointer, provided by the app in SDL_AppInit.
--
--     [Returns]: SDL_APP_FAILURE to terminate with an error, SDL_APP_SUCCESS to terminate with success, SDL_APP_CONTINUE to continue.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_AppIterate_func@, defined at @SDL3\/SDL_init.h 148:33@
newtype SDL_AppIterate_func = SDL_AppIterate_func
  { SDL_AppIterate_func -> FunPtr SDL_AppIterate_func_Aux
unwrap :: BG.FunPtr SDL_AppIterate_func_Aux
  }
  deriving stock ((forall x. SDL_AppIterate_func -> Rep SDL_AppIterate_func x)
-> (forall x. Rep SDL_AppIterate_func x -> SDL_AppIterate_func)
-> Generic SDL_AppIterate_func
forall x. Rep SDL_AppIterate_func x -> SDL_AppIterate_func
forall x. SDL_AppIterate_func -> Rep SDL_AppIterate_func x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppIterate_func -> Rep SDL_AppIterate_func x
from :: forall x. SDL_AppIterate_func -> Rep SDL_AppIterate_func x
$cto :: forall x. Rep SDL_AppIterate_func x -> SDL_AppIterate_func
to :: forall x. Rep SDL_AppIterate_func x -> SDL_AppIterate_func
BG.Generic, SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
(SDL_AppIterate_func -> SDL_AppIterate_func -> Bool)
-> (SDL_AppIterate_func -> SDL_AppIterate_func -> Bool)
-> Eq SDL_AppIterate_func
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
== :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
$c/= :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
/= :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
Eq, Eq SDL_AppIterate_func
Eq SDL_AppIterate_func =>
(SDL_AppIterate_func -> SDL_AppIterate_func -> Ordering)
-> (SDL_AppIterate_func -> SDL_AppIterate_func -> Bool)
-> (SDL_AppIterate_func -> SDL_AppIterate_func -> Bool)
-> (SDL_AppIterate_func -> SDL_AppIterate_func -> Bool)
-> (SDL_AppIterate_func -> SDL_AppIterate_func -> Bool)
-> (SDL_AppIterate_func
    -> SDL_AppIterate_func -> SDL_AppIterate_func)
-> (SDL_AppIterate_func
    -> SDL_AppIterate_func -> SDL_AppIterate_func)
-> Ord SDL_AppIterate_func
SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
SDL_AppIterate_func -> SDL_AppIterate_func -> Ordering
SDL_AppIterate_func -> SDL_AppIterate_func -> SDL_AppIterate_func
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_AppIterate_func -> SDL_AppIterate_func -> Ordering
compare :: SDL_AppIterate_func -> SDL_AppIterate_func -> Ordering
$c< :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
< :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
$c<= :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
<= :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
$c> :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
> :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
$c>= :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
>= :: SDL_AppIterate_func -> SDL_AppIterate_func -> Bool
$cmax :: SDL_AppIterate_func -> SDL_AppIterate_func -> SDL_AppIterate_func
max :: SDL_AppIterate_func -> SDL_AppIterate_func -> SDL_AppIterate_func
$cmin :: SDL_AppIterate_func -> SDL_AppIterate_func -> SDL_AppIterate_func
min :: SDL_AppIterate_func -> SDL_AppIterate_func -> SDL_AppIterate_func
Ord, Int -> SDL_AppIterate_func -> ShowS
[SDL_AppIterate_func] -> ShowS
SDL_AppIterate_func -> String
(Int -> SDL_AppIterate_func -> ShowS)
-> (SDL_AppIterate_func -> String)
-> ([SDL_AppIterate_func] -> ShowS)
-> Show SDL_AppIterate_func
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_AppIterate_func -> ShowS
showsPrec :: Int -> SDL_AppIterate_func -> ShowS
$cshow :: SDL_AppIterate_func -> String
show :: SDL_AppIterate_func -> String
$cshowList :: [SDL_AppIterate_func] -> ShowS
showList :: [SDL_AppIterate_func] -> ShowS
Show)
  deriving newtype
    ( FFIType SDL_AppIterate_func -> SDL_AppIterate_func
SDL_AppIterate_func -> FFIType SDL_AppIterate_func
(SDL_AppIterate_func -> FFIType SDL_AppIterate_func)
-> (FFIType SDL_AppIterate_func -> SDL_AppIterate_func)
-> HasFFIType SDL_AppIterate_func
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_AppIterate_func -> FFIType SDL_AppIterate_func
toFFIType :: SDL_AppIterate_func -> FFIType SDL_AppIterate_func
$cfromFFIType :: FFIType SDL_AppIterate_func -> SDL_AppIterate_func
fromFFIType :: FFIType SDL_AppIterate_func -> SDL_AppIterate_func
BG.HasFFIType
    , Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func
Ptr SDL_AppIterate_func -> Int -> IO SDL_AppIterate_func
Ptr SDL_AppIterate_func -> Int -> SDL_AppIterate_func -> IO ()
Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ()
SDL_AppIterate_func -> Int
(SDL_AppIterate_func -> Int)
-> (SDL_AppIterate_func -> Int)
-> (Ptr SDL_AppIterate_func -> Int -> IO SDL_AppIterate_func)
-> (Ptr SDL_AppIterate_func -> Int -> SDL_AppIterate_func -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_AppIterate_func)
-> (forall b. Ptr b -> Int -> SDL_AppIterate_func -> IO ())
-> (Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func)
-> (Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ())
-> Storable SDL_AppIterate_func
forall b. Ptr b -> Int -> IO SDL_AppIterate_func
forall b. Ptr b -> Int -> SDL_AppIterate_func -> 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
$csizeOf :: SDL_AppIterate_func -> Int
sizeOf :: SDL_AppIterate_func -> Int
$calignment :: SDL_AppIterate_func -> Int
alignment :: SDL_AppIterate_func -> Int
$cpeekElemOff :: Ptr SDL_AppIterate_func -> Int -> IO SDL_AppIterate_func
peekElemOff :: Ptr SDL_AppIterate_func -> Int -> IO SDL_AppIterate_func
$cpokeElemOff :: Ptr SDL_AppIterate_func -> Int -> SDL_AppIterate_func -> IO ()
pokeElemOff :: Ptr SDL_AppIterate_func -> Int -> SDL_AppIterate_func -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppIterate_func
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppIterate_func
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_AppIterate_func -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_AppIterate_func -> IO ()
$cpeek :: Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func
peek :: Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func
$cpoke :: Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ()
poke :: Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ()
BG.Storable
    , Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func
(Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func)
-> ReadRaw SDL_AppIterate_func
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func
readRaw :: Ptr SDL_AppIterate_func -> IO SDL_AppIterate_func
Marshal.ReadRaw
    , Proxy SDL_AppIterate_func -> Int
(Proxy SDL_AppIterate_func -> Int)
-> (Proxy SDL_AppIterate_func -> Int)
-> StaticSize SDL_AppIterate_func
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_AppIterate_func -> Int
staticSizeOf :: Proxy SDL_AppIterate_func -> Int
$cstaticAlignment :: Proxy SDL_AppIterate_func -> Int
staticAlignment :: Proxy SDL_AppIterate_func -> Int
Marshal.StaticSize
    , Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ()
(Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ())
-> WriteRaw SDL_AppIterate_func
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ()
writeRaw :: Ptr SDL_AppIterate_func -> SDL_AppIterate_func -> IO ()
Marshal.WriteRaw
    )

instance
  (ty ~ BG.FunPtr SDL_AppIterate_func_Aux)
  => BG.CompatHasField.HasField "unwrap" SDL_AppIterate_func ty
  where
  hasField :: SDL_AppIterate_func -> (ty -> SDL_AppIterate_func, ty)
hasField =
    \SDL_AppIterate_func
x0 ->
      ( \ty
y1 ->
          SDL_AppIterate_func{unwrap :: FunPtr SDL_AppIterate_func_Aux
unwrap = ty
FunPtr SDL_AppIterate_func_Aux
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppIterate_func
x0
      )

instance
  (ty ~ BG.FunPtr SDL_AppIterate_func_Aux)
  => BG.HasField "unwrap" (BG.Ptr SDL_AppIterate_func) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppIterate_func -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppIterate_func
-> Ptr (CFieldType SDL_AppIterate_func "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppIterate_func "unwrap" where
  type
    CFieldType SDL_AppIterate_func "unwrap" =
      BG.FunPtr SDL_AppIterate_func_Aux

  offset# :: Proxy# SDL_AppIterate_func -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppIterate_func
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Auxiliary type used by 'SDL_AppEvent_func'
--
--     [C declaration]: @SDL_AppEvent_func@, defined at @SDL3\/SDL_init.h 164:33@
newtype SDL_AppEvent_func_Aux = SDL_AppEvent_func_Aux
  { SDL_AppEvent_func_Aux
-> Ptr Void -> Ptr SDL_Event -> IO SDL_AppResult
unwrap :: BG.Ptr BG.Void -> BG.Ptr SDL3.Sys.Bindgen.Events.SDL_Event -> IO SDL_AppResult
  }
  deriving stock ((forall x. SDL_AppEvent_func_Aux -> Rep SDL_AppEvent_func_Aux x)
-> (forall x. Rep SDL_AppEvent_func_Aux x -> SDL_AppEvent_func_Aux)
-> Generic SDL_AppEvent_func_Aux
forall x. Rep SDL_AppEvent_func_Aux x -> SDL_AppEvent_func_Aux
forall x. SDL_AppEvent_func_Aux -> Rep SDL_AppEvent_func_Aux x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppEvent_func_Aux -> Rep SDL_AppEvent_func_Aux x
from :: forall x. SDL_AppEvent_func_Aux -> Rep SDL_AppEvent_func_Aux x
$cto :: forall x. Rep SDL_AppEvent_func_Aux x -> SDL_AppEvent_func_Aux
to :: forall x. Rep SDL_AppEvent_func_Aux x -> SDL_AppEvent_func_Aux
BG.Generic)

-- __unique:__ @toSDL_AppEvent_func_Aux@
foreign import ccall safe "wrapper"
  hs_bindgen_2b9dfae6ab23e116_base
    :: (BG.Ptr BG.Void -> BG.Ptr BG.Void -> IO BG.CUInt)
    -> IO (BG.FunPtr (BG.Ptr BG.Void -> BG.Ptr BG.Void -> IO BG.CUInt))

-- __unique:__ @toSDL_AppEvent_func_Aux@
hs_bindgen_2b9dfae6ab23e116
  :: SDL_AppEvent_func_Aux
  -> IO (BG.FunPtr SDL_AppEvent_func_Aux)
hs_bindgen_2b9dfae6ab23e116 :: SDL_AppEvent_func_Aux -> IO (FunPtr SDL_AppEvent_func_Aux)
hs_bindgen_2b9dfae6ab23e116 =
  \SDL_AppEvent_func_Aux
fun0 ->
    (FunPtr (Ptr Void -> Ptr Void -> IO CUInt)
 -> FunPtr SDL_AppEvent_func_Aux)
-> IO (FunPtr (Ptr Void -> Ptr Void -> IO CUInt))
-> IO (FunPtr SDL_AppEvent_func_Aux)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
      FunPtr (Ptr Void -> Ptr Void -> IO CUInt)
-> FunPtr SDL_AppEvent_func_Aux
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr
      ( (Ptr Void -> Ptr Void -> IO CUInt)
-> IO (FunPtr (Ptr Void -> Ptr Void -> IO CUInt))
hs_bindgen_2b9dfae6ab23e116_base
          ( \Ptr Void
x1 ->
              \Ptr Void
x2 ->
                (SDL_AppResult -> CUInt) -> IO SDL_AppResult -> IO CUInt
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap SDL_AppResult -> CUInt
SDL_AppResult -> FFIType SDL_AppResult
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType (forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppEvent_func_Aux
fun0 (FFIType (Ptr Void) -> Ptr Void
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType Ptr Void
FFIType (Ptr Void)
x1) (FFIType (Ptr SDL_Event) -> Ptr SDL_Event
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType Ptr Void
FFIType (Ptr SDL_Event)
x2))
          )
      )

-- __unique:__ @fromSDL_AppEvent_func_Aux@
foreign import ccall safe "dynamic"
  hs_bindgen_5d33518a4254e343_base
    :: BG.FunPtr (BG.Ptr BG.Void -> BG.Ptr BG.Void -> IO BG.CUInt)
    -> BG.Ptr BG.Void
    -> BG.Ptr BG.Void
    -> IO BG.CUInt

-- __unique:__ @fromSDL_AppEvent_func_Aux@
hs_bindgen_5d33518a4254e343
  :: BG.FunPtr SDL_AppEvent_func_Aux
  -> SDL_AppEvent_func_Aux
hs_bindgen_5d33518a4254e343 :: FunPtr SDL_AppEvent_func_Aux -> SDL_AppEvent_func_Aux
hs_bindgen_5d33518a4254e343 =
  \FunPtr SDL_AppEvent_func_Aux
funPtr0 ->
    (Ptr Void -> Ptr SDL_Event -> IO SDL_AppResult)
-> SDL_AppEvent_func_Aux
SDL_AppEvent_func_Aux
      ( \Ptr Void
x1 ->
          \Ptr SDL_Event
x2 ->
            (CUInt -> SDL_AppResult) -> IO CUInt -> IO SDL_AppResult
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
              CUInt -> SDL_AppResult
FFIType SDL_AppResult -> SDL_AppResult
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType
              (FunPtr (Ptr Void -> Ptr Void -> IO CUInt)
-> Ptr Void -> Ptr Void -> IO CUInt
hs_bindgen_5d33518a4254e343_base (FunPtr SDL_AppEvent_func_Aux
-> FunPtr (Ptr Void -> Ptr Void -> IO CUInt)
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr FunPtr SDL_AppEvent_func_Aux
funPtr0) (Ptr Void -> FFIType (Ptr Void)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr Void
x1) (Ptr SDL_Event -> FFIType (Ptr SDL_Event)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr SDL_Event
x2))
      )

instance BG.ToFunPtr SDL_AppEvent_func_Aux where
  toFunPtr :: SDL_AppEvent_func_Aux -> IO (FunPtr SDL_AppEvent_func_Aux)
toFunPtr = SDL_AppEvent_func_Aux -> IO (FunPtr SDL_AppEvent_func_Aux)
hs_bindgen_2b9dfae6ab23e116

instance BG.FromFunPtr SDL_AppEvent_func_Aux where
  fromFunPtr :: FunPtr SDL_AppEvent_func_Aux -> SDL_AppEvent_func_Aux
fromFunPtr = FunPtr SDL_AppEvent_func_Aux -> SDL_AppEvent_func_Aux
hs_bindgen_5d33518a4254e343

instance
  (ty ~ (BG.Ptr BG.Void -> BG.Ptr SDL3.Sys.Bindgen.Events.SDL_Event -> IO SDL_AppResult))
  => BG.CompatHasField.HasField "unwrap" SDL_AppEvent_func_Aux ty
  where
  hasField :: SDL_AppEvent_func_Aux -> (ty -> SDL_AppEvent_func_Aux, ty)
hasField =
    \SDL_AppEvent_func_Aux
x0 ->
      ( \ty
y1 ->
          SDL_AppEvent_func_Aux{unwrap :: Ptr Void -> Ptr SDL_Event -> IO SDL_AppResult
unwrap = ty
Ptr Void -> Ptr SDL_Event -> IO SDL_AppResult
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppEvent_func_Aux
x0
      )

instance
  (ty ~ (BG.Ptr BG.Void -> BG.Ptr SDL3.Sys.Bindgen.Events.SDL_Event -> IO SDL_AppResult))
  => BG.HasField "unwrap" (BG.Ptr SDL_AppEvent_func_Aux) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppEvent_func_Aux -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppEvent_func_Aux
-> Ptr (CFieldType SDL_AppEvent_func_Aux "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppEvent_func_Aux "unwrap" where
  type
    CFieldType SDL_AppEvent_func_Aux "unwrap" =
      BG.Ptr BG.Void -> BG.Ptr SDL3.Sys.Bindgen.Events.SDL_Event -> IO SDL_AppResult

  offset# :: Proxy# SDL_AppEvent_func_Aux -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppEvent_func_Aux
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Function pointer typedef for SDL_AppEvent.
--
--     These are used by SDL_EnterAppMainCallbacks. This mechanism operates behind the scenes for apps using the optional main callbacks. Apps that want to use this should just implement SDL_AppEvent directly.
--
--     [@appstate@]: an optional pointer, provided by the app in SDL_AppInit.
--
--     [@event@]: the new event for the app to examine.
--
--     [Returns]: SDL_APP_FAILURE to terminate with an error, SDL_APP_SUCCESS to terminate with success, SDL_APP_CONTINUE to continue.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_AppEvent_func@, defined at @SDL3\/SDL_init.h 164:33@
newtype SDL_AppEvent_func = SDL_AppEvent_func
  { SDL_AppEvent_func -> FunPtr SDL_AppEvent_func_Aux
unwrap :: BG.FunPtr SDL_AppEvent_func_Aux
  }
  deriving stock ((forall x. SDL_AppEvent_func -> Rep SDL_AppEvent_func x)
-> (forall x. Rep SDL_AppEvent_func x -> SDL_AppEvent_func)
-> Generic SDL_AppEvent_func
forall x. Rep SDL_AppEvent_func x -> SDL_AppEvent_func
forall x. SDL_AppEvent_func -> Rep SDL_AppEvent_func x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppEvent_func -> Rep SDL_AppEvent_func x
from :: forall x. SDL_AppEvent_func -> Rep SDL_AppEvent_func x
$cto :: forall x. Rep SDL_AppEvent_func x -> SDL_AppEvent_func
to :: forall x. Rep SDL_AppEvent_func x -> SDL_AppEvent_func
BG.Generic, SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
(SDL_AppEvent_func -> SDL_AppEvent_func -> Bool)
-> (SDL_AppEvent_func -> SDL_AppEvent_func -> Bool)
-> Eq SDL_AppEvent_func
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
== :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
$c/= :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
/= :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
Eq, Eq SDL_AppEvent_func
Eq SDL_AppEvent_func =>
(SDL_AppEvent_func -> SDL_AppEvent_func -> Ordering)
-> (SDL_AppEvent_func -> SDL_AppEvent_func -> Bool)
-> (SDL_AppEvent_func -> SDL_AppEvent_func -> Bool)
-> (SDL_AppEvent_func -> SDL_AppEvent_func -> Bool)
-> (SDL_AppEvent_func -> SDL_AppEvent_func -> Bool)
-> (SDL_AppEvent_func -> SDL_AppEvent_func -> SDL_AppEvent_func)
-> (SDL_AppEvent_func -> SDL_AppEvent_func -> SDL_AppEvent_func)
-> Ord SDL_AppEvent_func
SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
SDL_AppEvent_func -> SDL_AppEvent_func -> Ordering
SDL_AppEvent_func -> SDL_AppEvent_func -> SDL_AppEvent_func
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_AppEvent_func -> SDL_AppEvent_func -> Ordering
compare :: SDL_AppEvent_func -> SDL_AppEvent_func -> Ordering
$c< :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
< :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
$c<= :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
<= :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
$c> :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
> :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
$c>= :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
>= :: SDL_AppEvent_func -> SDL_AppEvent_func -> Bool
$cmax :: SDL_AppEvent_func -> SDL_AppEvent_func -> SDL_AppEvent_func
max :: SDL_AppEvent_func -> SDL_AppEvent_func -> SDL_AppEvent_func
$cmin :: SDL_AppEvent_func -> SDL_AppEvent_func -> SDL_AppEvent_func
min :: SDL_AppEvent_func -> SDL_AppEvent_func -> SDL_AppEvent_func
Ord, Int -> SDL_AppEvent_func -> ShowS
[SDL_AppEvent_func] -> ShowS
SDL_AppEvent_func -> String
(Int -> SDL_AppEvent_func -> ShowS)
-> (SDL_AppEvent_func -> String)
-> ([SDL_AppEvent_func] -> ShowS)
-> Show SDL_AppEvent_func
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_AppEvent_func -> ShowS
showsPrec :: Int -> SDL_AppEvent_func -> ShowS
$cshow :: SDL_AppEvent_func -> String
show :: SDL_AppEvent_func -> String
$cshowList :: [SDL_AppEvent_func] -> ShowS
showList :: [SDL_AppEvent_func] -> ShowS
Show)
  deriving newtype
    ( FFIType SDL_AppEvent_func -> SDL_AppEvent_func
SDL_AppEvent_func -> FFIType SDL_AppEvent_func
(SDL_AppEvent_func -> FFIType SDL_AppEvent_func)
-> (FFIType SDL_AppEvent_func -> SDL_AppEvent_func)
-> HasFFIType SDL_AppEvent_func
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_AppEvent_func -> FFIType SDL_AppEvent_func
toFFIType :: SDL_AppEvent_func -> FFIType SDL_AppEvent_func
$cfromFFIType :: FFIType SDL_AppEvent_func -> SDL_AppEvent_func
fromFFIType :: FFIType SDL_AppEvent_func -> SDL_AppEvent_func
BG.HasFFIType
    , Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func
Ptr SDL_AppEvent_func -> Int -> IO SDL_AppEvent_func
Ptr SDL_AppEvent_func -> Int -> SDL_AppEvent_func -> IO ()
Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ()
SDL_AppEvent_func -> Int
(SDL_AppEvent_func -> Int)
-> (SDL_AppEvent_func -> Int)
-> (Ptr SDL_AppEvent_func -> Int -> IO SDL_AppEvent_func)
-> (Ptr SDL_AppEvent_func -> Int -> SDL_AppEvent_func -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_AppEvent_func)
-> (forall b. Ptr b -> Int -> SDL_AppEvent_func -> IO ())
-> (Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func)
-> (Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ())
-> Storable SDL_AppEvent_func
forall b. Ptr b -> Int -> IO SDL_AppEvent_func
forall b. Ptr b -> Int -> SDL_AppEvent_func -> 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
$csizeOf :: SDL_AppEvent_func -> Int
sizeOf :: SDL_AppEvent_func -> Int
$calignment :: SDL_AppEvent_func -> Int
alignment :: SDL_AppEvent_func -> Int
$cpeekElemOff :: Ptr SDL_AppEvent_func -> Int -> IO SDL_AppEvent_func
peekElemOff :: Ptr SDL_AppEvent_func -> Int -> IO SDL_AppEvent_func
$cpokeElemOff :: Ptr SDL_AppEvent_func -> Int -> SDL_AppEvent_func -> IO ()
pokeElemOff :: Ptr SDL_AppEvent_func -> Int -> SDL_AppEvent_func -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppEvent_func
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppEvent_func
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_AppEvent_func -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_AppEvent_func -> IO ()
$cpeek :: Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func
peek :: Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func
$cpoke :: Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ()
poke :: Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ()
BG.Storable
    , Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func
(Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func)
-> ReadRaw SDL_AppEvent_func
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func
readRaw :: Ptr SDL_AppEvent_func -> IO SDL_AppEvent_func
Marshal.ReadRaw
    , Proxy SDL_AppEvent_func -> Int
(Proxy SDL_AppEvent_func -> Int)
-> (Proxy SDL_AppEvent_func -> Int) -> StaticSize SDL_AppEvent_func
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_AppEvent_func -> Int
staticSizeOf :: Proxy SDL_AppEvent_func -> Int
$cstaticAlignment :: Proxy SDL_AppEvent_func -> Int
staticAlignment :: Proxy SDL_AppEvent_func -> Int
Marshal.StaticSize
    , Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ()
(Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ())
-> WriteRaw SDL_AppEvent_func
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ()
writeRaw :: Ptr SDL_AppEvent_func -> SDL_AppEvent_func -> IO ()
Marshal.WriteRaw
    )

instance
  (ty ~ BG.FunPtr SDL_AppEvent_func_Aux)
  => BG.CompatHasField.HasField "unwrap" SDL_AppEvent_func ty
  where
  hasField :: SDL_AppEvent_func -> (ty -> SDL_AppEvent_func, ty)
hasField =
    \SDL_AppEvent_func
x0 ->
      ( \ty
y1 ->
          SDL_AppEvent_func{unwrap :: FunPtr SDL_AppEvent_func_Aux
unwrap = ty
FunPtr SDL_AppEvent_func_Aux
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppEvent_func
x0
      )

instance
  (ty ~ BG.FunPtr SDL_AppEvent_func_Aux)
  => BG.HasField "unwrap" (BG.Ptr SDL_AppEvent_func) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppEvent_func -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppEvent_func
-> Ptr (CFieldType SDL_AppEvent_func "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppEvent_func "unwrap" where
  type
    CFieldType SDL_AppEvent_func "unwrap" =
      BG.FunPtr SDL_AppEvent_func_Aux

  offset# :: Proxy# SDL_AppEvent_func -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppEvent_func
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Auxiliary type used by 'SDL_AppQuit_func'
--
--     [C declaration]: @SDL_AppQuit_func@, defined at @SDL3\/SDL_init.h 178:24@
newtype SDL_AppQuit_func_Aux = SDL_AppQuit_func_Aux
  { SDL_AppQuit_func_Aux -> Ptr Void -> SDL_AppResult -> IO ()
unwrap :: BG.Ptr BG.Void -> SDL_AppResult -> IO ()
  }
  deriving stock ((forall x. SDL_AppQuit_func_Aux -> Rep SDL_AppQuit_func_Aux x)
-> (forall x. Rep SDL_AppQuit_func_Aux x -> SDL_AppQuit_func_Aux)
-> Generic SDL_AppQuit_func_Aux
forall x. Rep SDL_AppQuit_func_Aux x -> SDL_AppQuit_func_Aux
forall x. SDL_AppQuit_func_Aux -> Rep SDL_AppQuit_func_Aux x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppQuit_func_Aux -> Rep SDL_AppQuit_func_Aux x
from :: forall x. SDL_AppQuit_func_Aux -> Rep SDL_AppQuit_func_Aux x
$cto :: forall x. Rep SDL_AppQuit_func_Aux x -> SDL_AppQuit_func_Aux
to :: forall x. Rep SDL_AppQuit_func_Aux x -> SDL_AppQuit_func_Aux
BG.Generic)

-- __unique:__ @toSDL_AppQuit_func_Aux@
foreign import ccall safe "wrapper"
  hs_bindgen_fabdaa4c4e54b1de_base
    :: (BG.Ptr BG.Void -> BG.CUInt -> IO ())
    -> IO (BG.FunPtr (BG.Ptr BG.Void -> BG.CUInt -> IO ()))

-- __unique:__ @toSDL_AppQuit_func_Aux@
hs_bindgen_fabdaa4c4e54b1de
  :: SDL_AppQuit_func_Aux
  -> IO (BG.FunPtr SDL_AppQuit_func_Aux)
hs_bindgen_fabdaa4c4e54b1de :: SDL_AppQuit_func_Aux -> IO (FunPtr SDL_AppQuit_func_Aux)
hs_bindgen_fabdaa4c4e54b1de =
  \SDL_AppQuit_func_Aux
fun0 ->
    (FunPtr (Ptr Void -> CUInt -> IO ())
 -> FunPtr SDL_AppQuit_func_Aux)
-> IO (FunPtr (Ptr Void -> CUInt -> IO ()))
-> IO (FunPtr SDL_AppQuit_func_Aux)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
      FunPtr (Ptr Void -> CUInt -> IO ()) -> FunPtr SDL_AppQuit_func_Aux
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr
      ( (Ptr Void -> CUInt -> IO ())
-> IO (FunPtr (Ptr Void -> CUInt -> IO ()))
hs_bindgen_fabdaa4c4e54b1de_base
          ( \Ptr Void
x1 ->
              \CUInt
x2 ->
                forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppQuit_func_Aux
fun0 (FFIType (Ptr Void) -> Ptr Void
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType Ptr Void
FFIType (Ptr Void)
x1) (FFIType SDL_AppResult -> SDL_AppResult
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType CUInt
FFIType SDL_AppResult
x2)
          )
      )

-- __unique:__ @fromSDL_AppQuit_func_Aux@
foreign import ccall safe "dynamic"
  hs_bindgen_7021ade2d0ddec93_base
    :: BG.FunPtr (BG.Ptr BG.Void -> BG.CUInt -> IO ())
    -> BG.Ptr BG.Void
    -> BG.CUInt
    -> IO ()

-- __unique:__ @fromSDL_AppQuit_func_Aux@
hs_bindgen_7021ade2d0ddec93
  :: BG.FunPtr SDL_AppQuit_func_Aux
  -> SDL_AppQuit_func_Aux
hs_bindgen_7021ade2d0ddec93 :: FunPtr SDL_AppQuit_func_Aux -> SDL_AppQuit_func_Aux
hs_bindgen_7021ade2d0ddec93 =
  \FunPtr SDL_AppQuit_func_Aux
funPtr0 ->
    (Ptr Void -> SDL_AppResult -> IO ()) -> SDL_AppQuit_func_Aux
SDL_AppQuit_func_Aux
      ( \Ptr Void
x1 ->
          \SDL_AppResult
x2 ->
            FunPtr (Ptr Void -> CUInt -> IO ()) -> Ptr Void -> CUInt -> IO ()
hs_bindgen_7021ade2d0ddec93_base (FunPtr SDL_AppQuit_func_Aux -> FunPtr (Ptr Void -> CUInt -> IO ())
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr FunPtr SDL_AppQuit_func_Aux
funPtr0) (Ptr Void -> FFIType (Ptr Void)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr Void
x1) (SDL_AppResult -> FFIType SDL_AppResult
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType SDL_AppResult
x2)
      )

instance BG.ToFunPtr SDL_AppQuit_func_Aux where
  toFunPtr :: SDL_AppQuit_func_Aux -> IO (FunPtr SDL_AppQuit_func_Aux)
toFunPtr = SDL_AppQuit_func_Aux -> IO (FunPtr SDL_AppQuit_func_Aux)
hs_bindgen_fabdaa4c4e54b1de

instance BG.FromFunPtr SDL_AppQuit_func_Aux where
  fromFunPtr :: FunPtr SDL_AppQuit_func_Aux -> SDL_AppQuit_func_Aux
fromFunPtr = FunPtr SDL_AppQuit_func_Aux -> SDL_AppQuit_func_Aux
hs_bindgen_7021ade2d0ddec93

instance
  (ty ~ (BG.Ptr BG.Void -> SDL_AppResult -> IO ()))
  => BG.CompatHasField.HasField "unwrap" SDL_AppQuit_func_Aux ty
  where
  hasField :: SDL_AppQuit_func_Aux -> (ty -> SDL_AppQuit_func_Aux, ty)
hasField =
    \SDL_AppQuit_func_Aux
x0 ->
      ( \ty
y1 ->
          SDL_AppQuit_func_Aux{unwrap :: Ptr Void -> SDL_AppResult -> IO ()
unwrap = ty
Ptr Void -> SDL_AppResult -> IO ()
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppQuit_func_Aux
x0
      )

instance
  (ty ~ (BG.Ptr BG.Void -> SDL_AppResult -> IO ()))
  => BG.HasField "unwrap" (BG.Ptr SDL_AppQuit_func_Aux) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppQuit_func_Aux -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppQuit_func_Aux
-> Ptr (CFieldType SDL_AppQuit_func_Aux "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppQuit_func_Aux "unwrap" where
  type
    CFieldType SDL_AppQuit_func_Aux "unwrap" =
      BG.Ptr BG.Void -> SDL_AppResult -> IO ()

  offset# :: Proxy# SDL_AppQuit_func_Aux -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppQuit_func_Aux
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Function pointer typedef for SDL_AppQuit.
--
--     These are used by SDL_EnterAppMainCallbacks. This mechanism operates behind the scenes for apps using the optional main callbacks. Apps that want to use this should just implement SDL_AppEvent directly.
--
--     [@appstate@]: an optional pointer, provided by the app in SDL_AppInit.
--
--     [@result@]: the result code that terminated the app (success or failure).
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_AppQuit_func@, defined at @SDL3\/SDL_init.h 178:24@
newtype SDL_AppQuit_func = SDL_AppQuit_func
  { SDL_AppQuit_func -> FunPtr SDL_AppQuit_func_Aux
unwrap :: BG.FunPtr SDL_AppQuit_func_Aux
  }
  deriving stock ((forall x. SDL_AppQuit_func -> Rep SDL_AppQuit_func x)
-> (forall x. Rep SDL_AppQuit_func x -> SDL_AppQuit_func)
-> Generic SDL_AppQuit_func
forall x. Rep SDL_AppQuit_func x -> SDL_AppQuit_func
forall x. SDL_AppQuit_func -> Rep SDL_AppQuit_func x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_AppQuit_func -> Rep SDL_AppQuit_func x
from :: forall x. SDL_AppQuit_func -> Rep SDL_AppQuit_func x
$cto :: forall x. Rep SDL_AppQuit_func x -> SDL_AppQuit_func
to :: forall x. Rep SDL_AppQuit_func x -> SDL_AppQuit_func
BG.Generic, SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
(SDL_AppQuit_func -> SDL_AppQuit_func -> Bool)
-> (SDL_AppQuit_func -> SDL_AppQuit_func -> Bool)
-> Eq SDL_AppQuit_func
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
== :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
$c/= :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
/= :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
Eq, Eq SDL_AppQuit_func
Eq SDL_AppQuit_func =>
(SDL_AppQuit_func -> SDL_AppQuit_func -> Ordering)
-> (SDL_AppQuit_func -> SDL_AppQuit_func -> Bool)
-> (SDL_AppQuit_func -> SDL_AppQuit_func -> Bool)
-> (SDL_AppQuit_func -> SDL_AppQuit_func -> Bool)
-> (SDL_AppQuit_func -> SDL_AppQuit_func -> Bool)
-> (SDL_AppQuit_func -> SDL_AppQuit_func -> SDL_AppQuit_func)
-> (SDL_AppQuit_func -> SDL_AppQuit_func -> SDL_AppQuit_func)
-> Ord SDL_AppQuit_func
SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
SDL_AppQuit_func -> SDL_AppQuit_func -> Ordering
SDL_AppQuit_func -> SDL_AppQuit_func -> SDL_AppQuit_func
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_AppQuit_func -> SDL_AppQuit_func -> Ordering
compare :: SDL_AppQuit_func -> SDL_AppQuit_func -> Ordering
$c< :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
< :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
$c<= :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
<= :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
$c> :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
> :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
$c>= :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
>= :: SDL_AppQuit_func -> SDL_AppQuit_func -> Bool
$cmax :: SDL_AppQuit_func -> SDL_AppQuit_func -> SDL_AppQuit_func
max :: SDL_AppQuit_func -> SDL_AppQuit_func -> SDL_AppQuit_func
$cmin :: SDL_AppQuit_func -> SDL_AppQuit_func -> SDL_AppQuit_func
min :: SDL_AppQuit_func -> SDL_AppQuit_func -> SDL_AppQuit_func
Ord, Int -> SDL_AppQuit_func -> ShowS
[SDL_AppQuit_func] -> ShowS
SDL_AppQuit_func -> String
(Int -> SDL_AppQuit_func -> ShowS)
-> (SDL_AppQuit_func -> String)
-> ([SDL_AppQuit_func] -> ShowS)
-> Show SDL_AppQuit_func
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_AppQuit_func -> ShowS
showsPrec :: Int -> SDL_AppQuit_func -> ShowS
$cshow :: SDL_AppQuit_func -> String
show :: SDL_AppQuit_func -> String
$cshowList :: [SDL_AppQuit_func] -> ShowS
showList :: [SDL_AppQuit_func] -> ShowS
Show)
  deriving newtype
    ( FFIType SDL_AppQuit_func -> SDL_AppQuit_func
SDL_AppQuit_func -> FFIType SDL_AppQuit_func
(SDL_AppQuit_func -> FFIType SDL_AppQuit_func)
-> (FFIType SDL_AppQuit_func -> SDL_AppQuit_func)
-> HasFFIType SDL_AppQuit_func
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_AppQuit_func -> FFIType SDL_AppQuit_func
toFFIType :: SDL_AppQuit_func -> FFIType SDL_AppQuit_func
$cfromFFIType :: FFIType SDL_AppQuit_func -> SDL_AppQuit_func
fromFFIType :: FFIType SDL_AppQuit_func -> SDL_AppQuit_func
BG.HasFFIType
    , Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func
Ptr SDL_AppQuit_func -> Int -> IO SDL_AppQuit_func
Ptr SDL_AppQuit_func -> Int -> SDL_AppQuit_func -> IO ()
Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ()
SDL_AppQuit_func -> Int
(SDL_AppQuit_func -> Int)
-> (SDL_AppQuit_func -> Int)
-> (Ptr SDL_AppQuit_func -> Int -> IO SDL_AppQuit_func)
-> (Ptr SDL_AppQuit_func -> Int -> SDL_AppQuit_func -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_AppQuit_func)
-> (forall b. Ptr b -> Int -> SDL_AppQuit_func -> IO ())
-> (Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func)
-> (Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ())
-> Storable SDL_AppQuit_func
forall b. Ptr b -> Int -> IO SDL_AppQuit_func
forall b. Ptr b -> Int -> SDL_AppQuit_func -> 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
$csizeOf :: SDL_AppQuit_func -> Int
sizeOf :: SDL_AppQuit_func -> Int
$calignment :: SDL_AppQuit_func -> Int
alignment :: SDL_AppQuit_func -> Int
$cpeekElemOff :: Ptr SDL_AppQuit_func -> Int -> IO SDL_AppQuit_func
peekElemOff :: Ptr SDL_AppQuit_func -> Int -> IO SDL_AppQuit_func
$cpokeElemOff :: Ptr SDL_AppQuit_func -> Int -> SDL_AppQuit_func -> IO ()
pokeElemOff :: Ptr SDL_AppQuit_func -> Int -> SDL_AppQuit_func -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppQuit_func
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_AppQuit_func
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_AppQuit_func -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_AppQuit_func -> IO ()
$cpeek :: Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func
peek :: Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func
$cpoke :: Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ()
poke :: Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ()
BG.Storable
    , Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func
(Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func)
-> ReadRaw SDL_AppQuit_func
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func
readRaw :: Ptr SDL_AppQuit_func -> IO SDL_AppQuit_func
Marshal.ReadRaw
    , Proxy SDL_AppQuit_func -> Int
(Proxy SDL_AppQuit_func -> Int)
-> (Proxy SDL_AppQuit_func -> Int) -> StaticSize SDL_AppQuit_func
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_AppQuit_func -> Int
staticSizeOf :: Proxy SDL_AppQuit_func -> Int
$cstaticAlignment :: Proxy SDL_AppQuit_func -> Int
staticAlignment :: Proxy SDL_AppQuit_func -> Int
Marshal.StaticSize
    , Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ()
(Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ())
-> WriteRaw SDL_AppQuit_func
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ()
writeRaw :: Ptr SDL_AppQuit_func -> SDL_AppQuit_func -> IO ()
Marshal.WriteRaw
    )

instance
  (ty ~ BG.FunPtr SDL_AppQuit_func_Aux)
  => BG.CompatHasField.HasField "unwrap" SDL_AppQuit_func ty
  where
  hasField :: SDL_AppQuit_func -> (ty -> SDL_AppQuit_func, ty)
hasField =
    \SDL_AppQuit_func
x0 ->
      ( \ty
y1 ->
          SDL_AppQuit_func{unwrap :: FunPtr SDL_AppQuit_func_Aux
unwrap = ty
FunPtr SDL_AppQuit_func_Aux
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_AppQuit_func
x0
      )

instance
  (ty ~ BG.FunPtr SDL_AppQuit_func_Aux)
  => BG.HasField "unwrap" (BG.Ptr SDL_AppQuit_func) (BG.Ptr ty)
  where
  getField :: Ptr SDL_AppQuit_func -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_AppQuit_func
-> Ptr (CFieldType SDL_AppQuit_func "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_AppQuit_func "unwrap" where
  type
    CFieldType SDL_AppQuit_func "unwrap" =
      BG.FunPtr SDL_AppQuit_func_Aux

  offset# :: Proxy# SDL_AppQuit_func -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_AppQuit_func
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Auxiliary type used by 'SDL_MainThreadCallback'
--
--     [C declaration]: @SDL_MainThreadCallback@, defined at @SDL3\/SDL_init.h 341:24@
newtype SDL_MainThreadCallback_Aux = SDL_MainThreadCallback_Aux
  { SDL_MainThreadCallback_Aux -> Ptr Void -> IO ()
unwrap :: BG.Ptr BG.Void -> IO ()
  }
  deriving stock ((forall x.
 SDL_MainThreadCallback_Aux -> Rep SDL_MainThreadCallback_Aux x)
-> (forall x.
    Rep SDL_MainThreadCallback_Aux x -> SDL_MainThreadCallback_Aux)
-> Generic SDL_MainThreadCallback_Aux
forall x.
Rep SDL_MainThreadCallback_Aux x -> SDL_MainThreadCallback_Aux
forall x.
SDL_MainThreadCallback_Aux -> Rep SDL_MainThreadCallback_Aux x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
SDL_MainThreadCallback_Aux -> Rep SDL_MainThreadCallback_Aux x
from :: forall x.
SDL_MainThreadCallback_Aux -> Rep SDL_MainThreadCallback_Aux x
$cto :: forall x.
Rep SDL_MainThreadCallback_Aux x -> SDL_MainThreadCallback_Aux
to :: forall x.
Rep SDL_MainThreadCallback_Aux x -> SDL_MainThreadCallback_Aux
BG.Generic)

-- __unique:__ @toSDL_MainThreadCallback_Aux@
foreign import ccall safe "wrapper"
  hs_bindgen_0ddfb0aab2235e28_base
    :: (BG.Ptr BG.Void -> IO ())
    -> IO (BG.FunPtr (BG.Ptr BG.Void -> IO ()))

-- __unique:__ @toSDL_MainThreadCallback_Aux@
hs_bindgen_0ddfb0aab2235e28
  :: SDL_MainThreadCallback_Aux
  -> IO (BG.FunPtr SDL_MainThreadCallback_Aux)
hs_bindgen_0ddfb0aab2235e28 :: SDL_MainThreadCallback_Aux
-> IO (FunPtr SDL_MainThreadCallback_Aux)
hs_bindgen_0ddfb0aab2235e28 =
  \SDL_MainThreadCallback_Aux
fun0 ->
    (FunPtr (Ptr Void -> IO ()) -> FunPtr SDL_MainThreadCallback_Aux)
-> IO (FunPtr (Ptr Void -> IO ()))
-> IO (FunPtr SDL_MainThreadCallback_Aux)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
      FunPtr (Ptr Void -> IO ()) -> FunPtr SDL_MainThreadCallback_Aux
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr
      ( (Ptr Void -> IO ()) -> IO (FunPtr (Ptr Void -> IO ()))
hs_bindgen_0ddfb0aab2235e28_base
          ( \Ptr Void
x1 ->
              forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_MainThreadCallback_Aux
fun0 (FFIType (Ptr Void) -> Ptr Void
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType Ptr Void
FFIType (Ptr Void)
x1)
          )
      )

-- __unique:__ @fromSDL_MainThreadCallback_Aux@
foreign import ccall safe "dynamic"
  hs_bindgen_b1a0621ae55dc01c_base
    :: BG.FunPtr (BG.Ptr BG.Void -> IO ())
    -> BG.Ptr BG.Void
    -> IO ()

-- __unique:__ @fromSDL_MainThreadCallback_Aux@
hs_bindgen_b1a0621ae55dc01c
  :: BG.FunPtr SDL_MainThreadCallback_Aux
  -> SDL_MainThreadCallback_Aux
hs_bindgen_b1a0621ae55dc01c :: FunPtr SDL_MainThreadCallback_Aux -> SDL_MainThreadCallback_Aux
hs_bindgen_b1a0621ae55dc01c =
  \FunPtr SDL_MainThreadCallback_Aux
funPtr0 ->
    (Ptr Void -> IO ()) -> SDL_MainThreadCallback_Aux
SDL_MainThreadCallback_Aux
      ( \Ptr Void
x1 ->
          FunPtr (Ptr Void -> IO ()) -> Ptr Void -> IO ()
hs_bindgen_b1a0621ae55dc01c_base (FunPtr SDL_MainThreadCallback_Aux -> FunPtr (Ptr Void -> IO ())
forall a b. FunPtr a -> FunPtr b
BG.castFunPtr FunPtr SDL_MainThreadCallback_Aux
funPtr0) (Ptr Void -> FFIType (Ptr Void)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr Void
x1)
      )

instance BG.ToFunPtr SDL_MainThreadCallback_Aux where
  toFunPtr :: SDL_MainThreadCallback_Aux
-> IO (FunPtr SDL_MainThreadCallback_Aux)
toFunPtr = SDL_MainThreadCallback_Aux
-> IO (FunPtr SDL_MainThreadCallback_Aux)
hs_bindgen_0ddfb0aab2235e28

instance BG.FromFunPtr SDL_MainThreadCallback_Aux where
  fromFunPtr :: FunPtr SDL_MainThreadCallback_Aux -> SDL_MainThreadCallback_Aux
fromFunPtr = FunPtr SDL_MainThreadCallback_Aux -> SDL_MainThreadCallback_Aux
hs_bindgen_b1a0621ae55dc01c

instance
  (ty ~ (BG.Ptr BG.Void -> IO ()))
  => BG.CompatHasField.HasField "unwrap" SDL_MainThreadCallback_Aux ty
  where
  hasField :: SDL_MainThreadCallback_Aux
-> (ty -> SDL_MainThreadCallback_Aux, ty)
hasField =
    \SDL_MainThreadCallback_Aux
x0 ->
      ( \ty
y1 ->
          SDL_MainThreadCallback_Aux{unwrap :: Ptr Void -> IO ()
unwrap = ty
Ptr Void -> IO ()
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_MainThreadCallback_Aux
x0
      )

instance
  (ty ~ (BG.Ptr BG.Void -> IO ()))
  => BG.HasField "unwrap" (BG.Ptr SDL_MainThreadCallback_Aux) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MainThreadCallback_Aux -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_MainThreadCallback_Aux
-> Ptr (CFieldType SDL_MainThreadCallback_Aux "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_MainThreadCallback_Aux "unwrap" where
  type
    CFieldType SDL_MainThreadCallback_Aux "unwrap" =
      BG.Ptr BG.Void -> IO ()

  offset# :: Proxy# SDL_MainThreadCallback_Aux -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_MainThreadCallback_Aux
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Callback run on the main thread.
--
--     [@userdata@]: an app-controlled pointer that is passed to the callback.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_RunOnMainThread'
--
--     [C declaration]: @SDL_MainThreadCallback@, defined at @SDL3\/SDL_init.h 341:24@
newtype SDL_MainThreadCallback = SDL_MainThreadCallback
  { SDL_MainThreadCallback -> FunPtr SDL_MainThreadCallback_Aux
unwrap :: BG.FunPtr SDL_MainThreadCallback_Aux
  }
  deriving stock ((forall x. SDL_MainThreadCallback -> Rep SDL_MainThreadCallback x)
-> (forall x.
    Rep SDL_MainThreadCallback x -> SDL_MainThreadCallback)
-> Generic SDL_MainThreadCallback
forall x. Rep SDL_MainThreadCallback x -> SDL_MainThreadCallback
forall x. SDL_MainThreadCallback -> Rep SDL_MainThreadCallback x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_MainThreadCallback -> Rep SDL_MainThreadCallback x
from :: forall x. SDL_MainThreadCallback -> Rep SDL_MainThreadCallback x
$cto :: forall x. Rep SDL_MainThreadCallback x -> SDL_MainThreadCallback
to :: forall x. Rep SDL_MainThreadCallback x -> SDL_MainThreadCallback
BG.Generic, SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
(SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool)
-> (SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool)
-> Eq SDL_MainThreadCallback
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
== :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
$c/= :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
/= :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
Eq, Eq SDL_MainThreadCallback
Eq SDL_MainThreadCallback =>
(SDL_MainThreadCallback -> SDL_MainThreadCallback -> Ordering)
-> (SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool)
-> (SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool)
-> (SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool)
-> (SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool)
-> (SDL_MainThreadCallback
    -> SDL_MainThreadCallback -> SDL_MainThreadCallback)
-> (SDL_MainThreadCallback
    -> SDL_MainThreadCallback -> SDL_MainThreadCallback)
-> Ord SDL_MainThreadCallback
SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
SDL_MainThreadCallback -> SDL_MainThreadCallback -> Ordering
SDL_MainThreadCallback
-> SDL_MainThreadCallback -> SDL_MainThreadCallback
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Ordering
compare :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Ordering
$c< :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
< :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
$c<= :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
<= :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
$c> :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
> :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
$c>= :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
>= :: SDL_MainThreadCallback -> SDL_MainThreadCallback -> Bool
$cmax :: SDL_MainThreadCallback
-> SDL_MainThreadCallback -> SDL_MainThreadCallback
max :: SDL_MainThreadCallback
-> SDL_MainThreadCallback -> SDL_MainThreadCallback
$cmin :: SDL_MainThreadCallback
-> SDL_MainThreadCallback -> SDL_MainThreadCallback
min :: SDL_MainThreadCallback
-> SDL_MainThreadCallback -> SDL_MainThreadCallback
Ord, Int -> SDL_MainThreadCallback -> ShowS
[SDL_MainThreadCallback] -> ShowS
SDL_MainThreadCallback -> String
(Int -> SDL_MainThreadCallback -> ShowS)
-> (SDL_MainThreadCallback -> String)
-> ([SDL_MainThreadCallback] -> ShowS)
-> Show SDL_MainThreadCallback
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_MainThreadCallback -> ShowS
showsPrec :: Int -> SDL_MainThreadCallback -> ShowS
$cshow :: SDL_MainThreadCallback -> String
show :: SDL_MainThreadCallback -> String
$cshowList :: [SDL_MainThreadCallback] -> ShowS
showList :: [SDL_MainThreadCallback] -> ShowS
Show)
  deriving newtype
    ( FFIType SDL_MainThreadCallback -> SDL_MainThreadCallback
SDL_MainThreadCallback -> FFIType SDL_MainThreadCallback
(SDL_MainThreadCallback -> FFIType SDL_MainThreadCallback)
-> (FFIType SDL_MainThreadCallback -> SDL_MainThreadCallback)
-> HasFFIType SDL_MainThreadCallback
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_MainThreadCallback -> FFIType SDL_MainThreadCallback
toFFIType :: SDL_MainThreadCallback -> FFIType SDL_MainThreadCallback
$cfromFFIType :: FFIType SDL_MainThreadCallback -> SDL_MainThreadCallback
fromFFIType :: FFIType SDL_MainThreadCallback -> SDL_MainThreadCallback
BG.HasFFIType
    , Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback
Ptr SDL_MainThreadCallback -> Int -> IO SDL_MainThreadCallback
Ptr SDL_MainThreadCallback
-> Int -> SDL_MainThreadCallback -> IO ()
Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ()
SDL_MainThreadCallback -> Int
(SDL_MainThreadCallback -> Int)
-> (SDL_MainThreadCallback -> Int)
-> (Ptr SDL_MainThreadCallback -> Int -> IO SDL_MainThreadCallback)
-> (Ptr SDL_MainThreadCallback
    -> Int -> SDL_MainThreadCallback -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_MainThreadCallback)
-> (forall b. Ptr b -> Int -> SDL_MainThreadCallback -> IO ())
-> (Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback)
-> (Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ())
-> Storable SDL_MainThreadCallback
forall b. Ptr b -> Int -> IO SDL_MainThreadCallback
forall b. Ptr b -> Int -> SDL_MainThreadCallback -> 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
$csizeOf :: SDL_MainThreadCallback -> Int
sizeOf :: SDL_MainThreadCallback -> Int
$calignment :: SDL_MainThreadCallback -> Int
alignment :: SDL_MainThreadCallback -> Int
$cpeekElemOff :: Ptr SDL_MainThreadCallback -> Int -> IO SDL_MainThreadCallback
peekElemOff :: Ptr SDL_MainThreadCallback -> Int -> IO SDL_MainThreadCallback
$cpokeElemOff :: Ptr SDL_MainThreadCallback
-> Int -> SDL_MainThreadCallback -> IO ()
pokeElemOff :: Ptr SDL_MainThreadCallback
-> Int -> SDL_MainThreadCallback -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_MainThreadCallback
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_MainThreadCallback
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_MainThreadCallback -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_MainThreadCallback -> IO ()
$cpeek :: Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback
peek :: Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback
$cpoke :: Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ()
poke :: Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ()
BG.Storable
    , Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback
(Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback)
-> ReadRaw SDL_MainThreadCallback
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback
readRaw :: Ptr SDL_MainThreadCallback -> IO SDL_MainThreadCallback
Marshal.ReadRaw
    , Proxy SDL_MainThreadCallback -> Int
(Proxy SDL_MainThreadCallback -> Int)
-> (Proxy SDL_MainThreadCallback -> Int)
-> StaticSize SDL_MainThreadCallback
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_MainThreadCallback -> Int
staticSizeOf :: Proxy SDL_MainThreadCallback -> Int
$cstaticAlignment :: Proxy SDL_MainThreadCallback -> Int
staticAlignment :: Proxy SDL_MainThreadCallback -> Int
Marshal.StaticSize
    , Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ()
(Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ())
-> WriteRaw SDL_MainThreadCallback
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ()
writeRaw :: Ptr SDL_MainThreadCallback -> SDL_MainThreadCallback -> IO ()
Marshal.WriteRaw
    )

instance
  (ty ~ BG.FunPtr SDL_MainThreadCallback_Aux)
  => BG.CompatHasField.HasField "unwrap" SDL_MainThreadCallback ty
  where
  hasField :: SDL_MainThreadCallback -> (ty -> SDL_MainThreadCallback, ty)
hasField =
    \SDL_MainThreadCallback
x0 ->
      ( \ty
y1 ->
          SDL_MainThreadCallback{unwrap :: FunPtr SDL_MainThreadCallback_Aux
unwrap = ty
FunPtr SDL_MainThreadCallback_Aux
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_MainThreadCallback
x0
      )

instance
  (ty ~ BG.FunPtr SDL_MainThreadCallback_Aux)
  => BG.HasField "unwrap" (BG.Ptr SDL_MainThreadCallback) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MainThreadCallback -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_MainThreadCallback
-> Ptr (CFieldType SDL_MainThreadCallback "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_MainThreadCallback "unwrap" where
  type
    CFieldType SDL_MainThreadCallback "unwrap" =
      BG.FunPtr SDL_MainThreadCallback_Aux

  offset# :: Proxy# SDL_MainThreadCallback -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_MainThreadCallback
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | [C declaration]: @macro SDL_PROP_APP_METADATA_NAME_STRING@, literal @\"SDL.app.metadata.name\"@, defined at @SDL3\/SDL_init.h 471:9@
sDL_PROP_APP_METADATA_NAME_STRING :: BG.ByteString
sDL_PROP_APP_METADATA_NAME_STRING :: ByteString
sDL_PROP_APP_METADATA_NAME_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x61
    , Word8
0x70
    , Word8
0x70
    , Word8
0x2E
    , Word8
0x6D
    , Word8
0x65
    , Word8
0x74
    , Word8
0x61
    , Word8
0x64
    , Word8
0x61
    , Word8
0x74
    , Word8
0x61
    , Word8
0x2E
    , Word8
0x6E
    , Word8
0x61
    , Word8
0x6D
    , Word8
0x65
    ]

-- | [C declaration]: @macro SDL_PROP_APP_METADATA_VERSION_STRING@, literal @\"SDL.app.metadata.version\"@, defined at @SDL3\/SDL_init.h 472:9@
sDL_PROP_APP_METADATA_VERSION_STRING :: BG.ByteString
sDL_PROP_APP_METADATA_VERSION_STRING :: ByteString
sDL_PROP_APP_METADATA_VERSION_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x61
    , Word8
0x70
    , Word8
0x70
    , Word8
0x2E
    , Word8
0x6D
    , Word8
0x65
    , Word8
0x74
    , Word8
0x61
    , Word8
0x64
    , Word8
0x61
    , Word8
0x74
    , Word8
0x61
    , Word8
0x2E
    , Word8
0x76
    , Word8
0x65
    , Word8
0x72
    , Word8
0x73
    , Word8
0x69
    , Word8
0x6F
    , Word8
0x6E
    ]

-- | [C declaration]: @macro SDL_PROP_APP_METADATA_IDENTIFIER_STRING@, literal @\"SDL.app.metadata.identifier\"@, defined at @SDL3\/SDL_init.h 473:9@
sDL_PROP_APP_METADATA_IDENTIFIER_STRING :: BG.ByteString
sDL_PROP_APP_METADATA_IDENTIFIER_STRING :: ByteString
sDL_PROP_APP_METADATA_IDENTIFIER_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x61
    , Word8
0x70
    , Word8
0x70
    , Word8
0x2E
    , Word8
0x6D
    , Word8
0x65
    , Word8
0x74
    , Word8
0x61
    , Word8
0x64
    , Word8
0x61
    , Word8
0x74
    , Word8
0x61
    , Word8
0x2E
    , Word8
0x69
    , Word8
0x64
    , Word8
0x65
    , Word8
0x6E
    , Word8
0x74
    , Word8
0x69
    , Word8
0x66
    , Word8
0x69
    , Word8
0x65
    , Word8
0x72
    ]

-- | [C declaration]: @macro SDL_PROP_APP_METADATA_CREATOR_STRING@, literal @\"SDL.app.metadata.creator\"@, defined at @SDL3\/SDL_init.h 474:9@
sDL_PROP_APP_METADATA_CREATOR_STRING :: BG.ByteString
sDL_PROP_APP_METADATA_CREATOR_STRING :: ByteString
sDL_PROP_APP_METADATA_CREATOR_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x61
    , Word8
0x70
    , Word8
0x70
    , Word8
0x2E
    , Word8
0x6D
    , Word8
0x65
    , Word8
0x74
    , Word8
0x61
    , Word8
0x64
    , Word8
0x61
    , Word8
0x74
    , Word8
0x61
    , Word8
0x2E
    , Word8
0x63
    , Word8
0x72
    , Word8
0x65
    , Word8
0x61
    , Word8
0x74
    , Word8
0x6F
    , Word8
0x72
    ]

-- | [C declaration]: @macro SDL_PROP_APP_METADATA_COPYRIGHT_STRING@, literal @\"SDL.app.metadata.copyright\"@, defined at @SDL3\/SDL_init.h 475:9@
sDL_PROP_APP_METADATA_COPYRIGHT_STRING :: BG.ByteString
sDL_PROP_APP_METADATA_COPYRIGHT_STRING :: ByteString
sDL_PROP_APP_METADATA_COPYRIGHT_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x61
    , Word8
0x70
    , Word8
0x70
    , Word8
0x2E
    , Word8
0x6D
    , Word8
0x65
    , Word8
0x74
    , Word8
0x61
    , Word8
0x64
    , Word8
0x61
    , Word8
0x74
    , Word8
0x61
    , Word8
0x2E
    , Word8
0x63
    , Word8
0x6F
    , Word8
0x70
    , Word8
0x79
    , Word8
0x72
    , Word8
0x69
    , Word8
0x67
    , Word8
0x68
    , Word8
0x74
    ]

-- | [C declaration]: @macro SDL_PROP_APP_METADATA_URL_STRING@, literal @\"SDL.app.metadata.url\"@, defined at @SDL3\/SDL_init.h 476:9@
sDL_PROP_APP_METADATA_URL_STRING :: BG.ByteString
sDL_PROP_APP_METADATA_URL_STRING :: ByteString
sDL_PROP_APP_METADATA_URL_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x61
    , Word8
0x70
    , Word8
0x70
    , Word8
0x2E
    , Word8
0x6D
    , Word8
0x65
    , Word8
0x74
    , Word8
0x61
    , Word8
0x64
    , Word8
0x61
    , Word8
0x74
    , Word8
0x61
    , Word8
0x2E
    , Word8
0x75
    , Word8
0x72
    , Word8
0x6C
    ]

-- | [C declaration]: @macro SDL_PROP_APP_METADATA_TYPE_STRING@, literal @\"SDL.app.metadata.type\"@, defined at @SDL3\/SDL_init.h 477:9@
sDL_PROP_APP_METADATA_TYPE_STRING :: BG.ByteString
sDL_PROP_APP_METADATA_TYPE_STRING :: ByteString
sDL_PROP_APP_METADATA_TYPE_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x61
    , Word8
0x70
    , Word8
0x70
    , Word8
0x2E
    , Word8
0x6D
    , Word8
0x65
    , Word8
0x74
    , Word8
0x61
    , Word8
0x64
    , Word8
0x61
    , Word8
0x74
    , Word8
0x61
    , Word8
0x2E
    , Word8
0x74
    , Word8
0x79
    , Word8
0x70
    , Word8
0x65
    ]