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

-- | SDL surfaces are buffers of pixels in system RAM. These are useful for passing around and manipulating images that are not stored in GPU memory.
--
--     'SDL_Surface' makes serious efforts to manage images in various formats, and provides a reasonable toolbox for transforming the data, including copying between surfaces, filling rectangles in the image data, etc.
--
--     There is also a simple .bmp loader, @SDL_LoadBMP()@, and a simple .png loader, @SDL_LoadPNG()@. SDL itself does not provide loaders for other file formats, but there are several excellent external libraries that do, including its own satellite library, [SDL_image](https://wiki.libsdl.org/SDL3_image) In general these functions are thread-safe in that they can be called on different threads with different surfaces. You should not try to modify any surface from two threads simultaneously. The flags on an 'SDL_Surface'.
--
--     These are generally considered read-only.
--
--     @since 3.2.0
module SDL3.Sys.Bindgen.Surface (
  SDL3.Sys.Bindgen.Surface.SDL_SurfaceFlags (..),
  SDL3.Sys.Bindgen.Surface.sDL_SURFACE_PREALLOCATED,
  SDL3.Sys.Bindgen.Surface.sDL_SURFACE_LOCK_NEEDED,
  SDL3.Sys.Bindgen.Surface.sDL_SURFACE_LOCKED,
  SDL3.Sys.Bindgen.Surface.sDL_SURFACE_SIMD_ALIGNED,
  SDL3.Sys.Bindgen.Surface.SDL_ScaleMode (..),
  pattern SDL3.Sys.Bindgen.Surface.SDL_SCALEMODE_INVALID,
  pattern SDL3.Sys.Bindgen.Surface.SDL_SCALEMODE_NEAREST,
  pattern SDL3.Sys.Bindgen.Surface.SDL_SCALEMODE_LINEAR,
  pattern SDL3.Sys.Bindgen.Surface.SDL_SCALEMODE_PIXELART,
  SDL3.Sys.Bindgen.Surface.SDL_FlipMode (..),
  pattern SDL3.Sys.Bindgen.Surface.SDL_FLIP_NONE,
  pattern SDL3.Sys.Bindgen.Surface.SDL_FLIP_HORIZONTAL,
  pattern SDL3.Sys.Bindgen.Surface.SDL_FLIP_VERTICAL,
  pattern SDL3.Sys.Bindgen.Surface.SDL_FLIP_HORIZONTAL_AND_VERTICAL,
  SDL3.Sys.Bindgen.Surface.SDL_Surface (..),
  SDL3.Sys.Bindgen.Surface.sDL_PROP_SURFACE_SDR_WHITE_POINT_FLOAT,
  SDL3.Sys.Bindgen.Surface.sDL_PROP_SURFACE_HDR_HEADROOM_FLOAT,
  SDL3.Sys.Bindgen.Surface.sDL_PROP_SURFACE_TONEMAP_OPERATOR_STRING,
  SDL3.Sys.Bindgen.Surface.sDL_PROP_SURFACE_HOTSPOT_X_NUMBER,
  SDL3.Sys.Bindgen.Surface.sDL_PROP_SURFACE_HOTSPOT_Y_NUMBER,
  SDL3.Sys.Bindgen.Surface.sDL_PROP_SURFACE_ROTATION_FLOAT,
)
where

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

import HsBindgen.Runtime.CEnum qualified as CEnum
import HsBindgen.Runtime.HasCField qualified as HasCField
import HsBindgen.Runtime.Marshal qualified as Marshal
import HsBindgen.Runtime.Struct qualified as Struct
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CompatHasField qualified as BG.CompatHasField
import SDL3.Sys.Bindgen.Pixels qualified
import SDL3.Sys.Bindgen.Stdinc qualified

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

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "unwrap" SDL_SurfaceFlags ty
  where
  hasField :: SDL_SurfaceFlags -> (ty -> SDL_SurfaceFlags, ty)
hasField =
    \SDL_SurfaceFlags
x0 ->
      ( \ty
y1 ->
          SDL_SurfaceFlags{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_SurfaceFlags
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "unwrap" (BG.Ptr SDL_SurfaceFlags) (BG.Ptr ty)
  where
  getField :: Ptr SDL_SurfaceFlags -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_SurfaceFlags
-> Ptr (CFieldType SDL_SurfaceFlags "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_SurfaceFlags "unwrap" where
  type
    CFieldType SDL_SurfaceFlags "unwrap" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

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

-- | Surface uses preallocated pixel memory
--
--     [C declaration]: @macro SDL_SURFACE_PREALLOCATED@, defined at @SDL3\/SDL_surface.h 70:9@
sDL_SURFACE_PREALLOCATED :: BG.CUInt
sDL_SURFACE_PREALLOCATED :: CUInt
sDL_SURFACE_PREALLOCATED = (CUInt
1 :: BG.CUInt)

-- | Surface needs to be locked to access pixels
--
--     [C declaration]: @macro SDL_SURFACE_LOCK_NEEDED@, defined at @SDL3\/SDL_surface.h 71:9@
sDL_SURFACE_LOCK_NEEDED :: BG.CUInt
sDL_SURFACE_LOCK_NEEDED :: CUInt
sDL_SURFACE_LOCK_NEEDED = (CUInt
2 :: BG.CUInt)

-- | Surface is currently locked
--
--     [C declaration]: @macro SDL_SURFACE_LOCKED@, defined at @SDL3\/SDL_surface.h 72:9@
sDL_SURFACE_LOCKED :: BG.CUInt
sDL_SURFACE_LOCKED :: CUInt
sDL_SURFACE_LOCKED = (CUInt
4 :: BG.CUInt)

-- | Surface uses pixel memory allocated with SDL_aligned_alloc()
--
--     [C declaration]: @macro SDL_SURFACE_SIMD_ALIGNED@, defined at @SDL3\/SDL_surface.h 73:9@
sDL_SURFACE_SIMD_ALIGNED :: BG.CUInt
sDL_SURFACE_SIMD_ALIGNED :: CUInt
sDL_SURFACE_SIMD_ALIGNED = (CUInt
8 :: BG.CUInt)

-- | The scaling mode.
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_ScaleMode@, defined at @SDL3\/SDL_surface.h 87:14@
newtype SDL_ScaleMode = SDL_ScaleMode
  { SDL_ScaleMode -> CInt
unwrap :: BG.CInt
  }
  deriving stock ((forall x. SDL_ScaleMode -> Rep SDL_ScaleMode x)
-> (forall x. Rep SDL_ScaleMode x -> SDL_ScaleMode)
-> Generic SDL_ScaleMode
forall x. Rep SDL_ScaleMode x -> SDL_ScaleMode
forall x. SDL_ScaleMode -> Rep SDL_ScaleMode x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_ScaleMode -> Rep SDL_ScaleMode x
from :: forall x. SDL_ScaleMode -> Rep SDL_ScaleMode x
$cto :: forall x. Rep SDL_ScaleMode x -> SDL_ScaleMode
to :: forall x. Rep SDL_ScaleMode x -> SDL_ScaleMode
BG.Generic, SDL_ScaleMode -> SDL_ScaleMode -> Bool
(SDL_ScaleMode -> SDL_ScaleMode -> Bool)
-> (SDL_ScaleMode -> SDL_ScaleMode -> Bool) -> Eq SDL_ScaleMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
== :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
$c/= :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
/= :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
Eq, Eq SDL_ScaleMode
Eq SDL_ScaleMode =>
(SDL_ScaleMode -> SDL_ScaleMode -> Ordering)
-> (SDL_ScaleMode -> SDL_ScaleMode -> Bool)
-> (SDL_ScaleMode -> SDL_ScaleMode -> Bool)
-> (SDL_ScaleMode -> SDL_ScaleMode -> Bool)
-> (SDL_ScaleMode -> SDL_ScaleMode -> Bool)
-> (SDL_ScaleMode -> SDL_ScaleMode -> SDL_ScaleMode)
-> (SDL_ScaleMode -> SDL_ScaleMode -> SDL_ScaleMode)
-> Ord SDL_ScaleMode
SDL_ScaleMode -> SDL_ScaleMode -> Bool
SDL_ScaleMode -> SDL_ScaleMode -> Ordering
SDL_ScaleMode -> SDL_ScaleMode -> SDL_ScaleMode
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_ScaleMode -> SDL_ScaleMode -> Ordering
compare :: SDL_ScaleMode -> SDL_ScaleMode -> Ordering
$c< :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
< :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
$c<= :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
<= :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
$c> :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
> :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
$c>= :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
>= :: SDL_ScaleMode -> SDL_ScaleMode -> Bool
$cmax :: SDL_ScaleMode -> SDL_ScaleMode -> SDL_ScaleMode
max :: SDL_ScaleMode -> SDL_ScaleMode -> SDL_ScaleMode
$cmin :: SDL_ScaleMode -> SDL_ScaleMode -> SDL_ScaleMode
min :: SDL_ScaleMode -> SDL_ScaleMode -> SDL_ScaleMode
Ord)
  deriving newtype (FFIType SDL_ScaleMode -> SDL_ScaleMode
SDL_ScaleMode -> FFIType SDL_ScaleMode
(SDL_ScaleMode -> FFIType SDL_ScaleMode)
-> (FFIType SDL_ScaleMode -> SDL_ScaleMode)
-> HasFFIType SDL_ScaleMode
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_ScaleMode -> FFIType SDL_ScaleMode
toFFIType :: SDL_ScaleMode -> FFIType SDL_ScaleMode
$cfromFFIType :: FFIType SDL_ScaleMode -> SDL_ScaleMode
fromFFIType :: FFIType SDL_ScaleMode -> SDL_ScaleMode
BG.HasFFIType)

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

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

instance Marshal.ReadRaw SDL_ScaleMode where
  readRaw :: Ptr SDL_ScaleMode -> IO SDL_ScaleMode
readRaw =
    \Ptr SDL_ScaleMode
ptr0 ->
      (CInt -> SDL_ScaleMode) -> IO (CInt -> SDL_ScaleMode)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CInt -> SDL_ScaleMode
SDL_ScaleMode
        IO (CInt -> SDL_ScaleMode) -> IO CInt -> IO SDL_ScaleMode
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_ScaleMode -> Int -> IO CInt
forall a b. ReadRaw a => Ptr b -> Int -> IO a
Marshal.readRawByteOff Ptr SDL_ScaleMode
ptr0 (Int
0 :: Int)

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

deriving via Marshal.EquivStorable SDL_ScaleMode instance BG.Storable SDL_ScaleMode

deriving via BG.CInt instance BG.Prim SDL_ScaleMode

instance CEnum.CEnum SDL_ScaleMode where
  type CEnumZ SDL_ScaleMode = BG.CInt

  toCEnum :: CEnumZ SDL_ScaleMode -> SDL_ScaleMode
toCEnum = CInt -> SDL_ScaleMode
CEnumZ SDL_ScaleMode -> SDL_ScaleMode
SDL_ScaleMode

  fromCEnum :: SDL_ScaleMode -> CEnumZ SDL_ScaleMode
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_ScaleMode -> DeclaredValues SDL_ScaleMode
declaredValues =
    \proxy SDL_ScaleMode
_ ->
      [(CEnumZ SDL_ScaleMode, NonEmpty String)]
-> DeclaredValues SDL_ScaleMode
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (-CInt
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_SCALEMODE_INVALID")
        , (CInt
CEnumZ SDL_ScaleMode
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_SCALEMODE_NEAREST")
        , (CInt
CEnumZ SDL_ScaleMode
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_SCALEMODE_LINEAR")
        , (CInt
CEnumZ SDL_ScaleMode
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_SCALEMODE_PIXELART")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_ScaleMode where
  minDeclaredValue :: SDL_ScaleMode
minDeclaredValue = SDL_ScaleMode
SDL_SCALEMODE_INVALID

  maxDeclaredValue :: SDL_ScaleMode
maxDeclaredValue = SDL_ScaleMode
SDL_SCALEMODE_PIXELART

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

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

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

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

instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "unwrap" SDL_ScaleMode ty
  where
  hasField :: SDL_ScaleMode -> (ty -> SDL_ScaleMode, ty)
hasField =
    \SDL_ScaleMode
x0 ->
      ( \ty
y1 ->
          SDL_ScaleMode{unwrap :: CInt
unwrap = ty
CInt
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_ScaleMode
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "unwrap" (BG.Ptr SDL_ScaleMode) (BG.Ptr ty)
  where
  getField :: Ptr SDL_ScaleMode -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_ScaleMode -> Ptr (CFieldType SDL_ScaleMode "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_ScaleMode "unwrap" where
  type CFieldType SDL_ScaleMode "unwrap" = BG.CInt

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

-- | [C declaration]: @SDL_SCALEMODE_INVALID@, defined at @SDL3\/SDL_surface.h 89:5@
pattern SDL_SCALEMODE_INVALID :: SDL_ScaleMode
pattern $mSDL_SCALEMODE_INVALID :: forall {r}. SDL_ScaleMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_SCALEMODE_INVALID :: SDL_ScaleMode
SDL_SCALEMODE_INVALID = SDL_ScaleMode (-1)

-- | nearest pixel sampling
--
--     [C declaration]: @SDL_SCALEMODE_NEAREST@, defined at @SDL3\/SDL_surface.h 90:5@
pattern SDL_SCALEMODE_NEAREST :: SDL_ScaleMode
pattern $mSDL_SCALEMODE_NEAREST :: forall {r}. SDL_ScaleMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_SCALEMODE_NEAREST :: SDL_ScaleMode
SDL_SCALEMODE_NEAREST = SDL_ScaleMode 0

-- | linear filtering
--
--     [C declaration]: @SDL_SCALEMODE_LINEAR@, defined at @SDL3\/SDL_surface.h 91:5@
pattern SDL_SCALEMODE_LINEAR :: SDL_ScaleMode
pattern $mSDL_SCALEMODE_LINEAR :: forall {r}. SDL_ScaleMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_SCALEMODE_LINEAR :: SDL_ScaleMode
SDL_SCALEMODE_LINEAR = SDL_ScaleMode 1

-- | nearest pixel sampling with improved scaling for pixel art, available since SDL 3.4.0
--
--     [C declaration]: @SDL_SCALEMODE_PIXELART@, defined at @SDL3\/SDL_surface.h 92:5@
pattern SDL_SCALEMODE_PIXELART :: SDL_ScaleMode
pattern $mSDL_SCALEMODE_PIXELART :: forall {r}. SDL_ScaleMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_SCALEMODE_PIXELART :: SDL_ScaleMode
SDL_SCALEMODE_PIXELART = SDL_ScaleMode 2

-- | The flip mode.
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_FlipMode@, defined at @SDL3\/SDL_surface.h 100:14@
newtype SDL_FlipMode = SDL_FlipMode
  { SDL_FlipMode -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_FlipMode -> Rep SDL_FlipMode x)
-> (forall x. Rep SDL_FlipMode x -> SDL_FlipMode)
-> Generic SDL_FlipMode
forall x. Rep SDL_FlipMode x -> SDL_FlipMode
forall x. SDL_FlipMode -> Rep SDL_FlipMode x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_FlipMode -> Rep SDL_FlipMode x
from :: forall x. SDL_FlipMode -> Rep SDL_FlipMode x
$cto :: forall x. Rep SDL_FlipMode x -> SDL_FlipMode
to :: forall x. Rep SDL_FlipMode x -> SDL_FlipMode
BG.Generic, SDL_FlipMode -> SDL_FlipMode -> Bool
(SDL_FlipMode -> SDL_FlipMode -> Bool)
-> (SDL_FlipMode -> SDL_FlipMode -> Bool) -> Eq SDL_FlipMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_FlipMode -> SDL_FlipMode -> Bool
== :: SDL_FlipMode -> SDL_FlipMode -> Bool
$c/= :: SDL_FlipMode -> SDL_FlipMode -> Bool
/= :: SDL_FlipMode -> SDL_FlipMode -> Bool
Eq, Eq SDL_FlipMode
Eq SDL_FlipMode =>
(SDL_FlipMode -> SDL_FlipMode -> Ordering)
-> (SDL_FlipMode -> SDL_FlipMode -> Bool)
-> (SDL_FlipMode -> SDL_FlipMode -> Bool)
-> (SDL_FlipMode -> SDL_FlipMode -> Bool)
-> (SDL_FlipMode -> SDL_FlipMode -> Bool)
-> (SDL_FlipMode -> SDL_FlipMode -> SDL_FlipMode)
-> (SDL_FlipMode -> SDL_FlipMode -> SDL_FlipMode)
-> Ord SDL_FlipMode
SDL_FlipMode -> SDL_FlipMode -> Bool
SDL_FlipMode -> SDL_FlipMode -> Ordering
SDL_FlipMode -> SDL_FlipMode -> SDL_FlipMode
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_FlipMode -> SDL_FlipMode -> Ordering
compare :: SDL_FlipMode -> SDL_FlipMode -> Ordering
$c< :: SDL_FlipMode -> SDL_FlipMode -> Bool
< :: SDL_FlipMode -> SDL_FlipMode -> Bool
$c<= :: SDL_FlipMode -> SDL_FlipMode -> Bool
<= :: SDL_FlipMode -> SDL_FlipMode -> Bool
$c> :: SDL_FlipMode -> SDL_FlipMode -> Bool
> :: SDL_FlipMode -> SDL_FlipMode -> Bool
$c>= :: SDL_FlipMode -> SDL_FlipMode -> Bool
>= :: SDL_FlipMode -> SDL_FlipMode -> Bool
$cmax :: SDL_FlipMode -> SDL_FlipMode -> SDL_FlipMode
max :: SDL_FlipMode -> SDL_FlipMode -> SDL_FlipMode
$cmin :: SDL_FlipMode -> SDL_FlipMode -> SDL_FlipMode
min :: SDL_FlipMode -> SDL_FlipMode -> SDL_FlipMode
Ord)
  deriving newtype (FFIType SDL_FlipMode -> SDL_FlipMode
SDL_FlipMode -> FFIType SDL_FlipMode
(SDL_FlipMode -> FFIType SDL_FlipMode)
-> (FFIType SDL_FlipMode -> SDL_FlipMode)
-> HasFFIType SDL_FlipMode
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_FlipMode -> FFIType SDL_FlipMode
toFFIType :: SDL_FlipMode -> FFIType SDL_FlipMode
$cfromFFIType :: FFIType SDL_FlipMode -> SDL_FlipMode
fromFFIType :: FFIType SDL_FlipMode -> SDL_FlipMode
BG.HasFFIType)

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

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

instance Marshal.ReadRaw SDL_FlipMode where
  readRaw :: Ptr SDL_FlipMode -> IO SDL_FlipMode
readRaw =
    \Ptr SDL_FlipMode
ptr0 ->
      (CUInt -> SDL_FlipMode) -> IO (CUInt -> SDL_FlipMode)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CUInt -> SDL_FlipMode
SDL_FlipMode
        IO (CUInt -> SDL_FlipMode) -> IO CUInt -> IO SDL_FlipMode
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_FlipMode -> Int -> IO CUInt
forall a b. ReadRaw a => Ptr b -> Int -> IO a
Marshal.readRawByteOff Ptr SDL_FlipMode
ptr0 (Int
0 :: Int)

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

deriving via Marshal.EquivStorable SDL_FlipMode instance BG.Storable SDL_FlipMode

deriving via BG.CUInt instance BG.Prim SDL_FlipMode

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

  toCEnum :: CEnumZ SDL_FlipMode -> SDL_FlipMode
toCEnum = CUInt -> SDL_FlipMode
CEnumZ SDL_FlipMode -> SDL_FlipMode
SDL_FlipMode

  fromCEnum :: SDL_FlipMode -> CEnumZ SDL_FlipMode
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_FlipMode -> DeclaredValues SDL_FlipMode
declaredValues =
    \proxy SDL_FlipMode
_ ->
      [(CEnumZ SDL_FlipMode, NonEmpty String)]
-> DeclaredValues SDL_FlipMode
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_FlipMode
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_FLIP_NONE")
        , (CUInt
CEnumZ SDL_FlipMode
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_FLIP_HORIZONTAL")
        , (CUInt
CEnumZ SDL_FlipMode
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_FLIP_VERTICAL")
        , (CUInt
CEnumZ SDL_FlipMode
3, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_FLIP_HORIZONTAL_AND_VERTICAL")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_FlipMode where
  minDeclaredValue :: SDL_FlipMode
minDeclaredValue = SDL_FlipMode
SDL_FLIP_NONE

  maxDeclaredValue :: SDL_FlipMode
maxDeclaredValue = SDL_FlipMode
SDL_FLIP_HORIZONTAL_AND_VERTICAL

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

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

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

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

instance
  (ty ~ BG.CUInt)
  => BG.CompatHasField.HasField "unwrap" SDL_FlipMode ty
  where
  hasField :: SDL_FlipMode -> (ty -> SDL_FlipMode, ty)
hasField =
    \SDL_FlipMode
x0 ->
      ( \ty
y1 ->
          SDL_FlipMode{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_FlipMode
x0
      )

instance
  (ty ~ BG.CUInt)
  => BG.HasField "unwrap" (BG.Ptr SDL_FlipMode) (BG.Ptr ty)
  where
  getField :: Ptr SDL_FlipMode -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_FlipMode -> Ptr (CFieldType SDL_FlipMode "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_FlipMode "unwrap" where
  type CFieldType SDL_FlipMode "unwrap" = BG.CUInt

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

-- | Do not flip
--
--     [C declaration]: @SDL_FLIP_NONE@, defined at @SDL3\/SDL_surface.h 102:5@
pattern SDL_FLIP_NONE :: SDL_FlipMode
pattern $mSDL_FLIP_NONE :: forall {r}. SDL_FlipMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_FLIP_NONE :: SDL_FlipMode
SDL_FLIP_NONE = SDL_FlipMode 0

-- | flip horizontally
--
--     [C declaration]: @SDL_FLIP_HORIZONTAL@, defined at @SDL3\/SDL_surface.h 103:5@
pattern SDL_FLIP_HORIZONTAL :: SDL_FlipMode
pattern $mSDL_FLIP_HORIZONTAL :: forall {r}. SDL_FlipMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_FLIP_HORIZONTAL :: SDL_FlipMode
SDL_FLIP_HORIZONTAL = SDL_FlipMode 1

-- | flip vertically
--
--     [C declaration]: @SDL_FLIP_VERTICAL@, defined at @SDL3\/SDL_surface.h 104:5@
pattern SDL_FLIP_VERTICAL :: SDL_FlipMode
pattern $mSDL_FLIP_VERTICAL :: forall {r}. SDL_FlipMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_FLIP_VERTICAL :: SDL_FlipMode
SDL_FLIP_VERTICAL = SDL_FlipMode 2

-- | flip horizontally and vertically (not a diagonal flip)
--
--     [C declaration]: @SDL_FLIP_HORIZONTAL_AND_VERTICAL@, defined at @SDL3\/SDL_surface.h 105:5@
pattern SDL_FLIP_HORIZONTAL_AND_VERTICAL :: SDL_FlipMode
pattern $mSDL_FLIP_HORIZONTAL_AND_VERTICAL :: forall {r}. SDL_FlipMode -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_FLIP_HORIZONTAL_AND_VERTICAL :: SDL_FlipMode
SDL_FLIP_HORIZONTAL_AND_VERTICAL = SDL_FlipMode 3

-- | A collection of pixels used in software blitting.
--
--     Pixels are arranged in memory in rows, with the top row first. Each row occupies an amount of memory given by the pitch (sometimes known as the row stride in non-SDL APIs).
--
--     Within each row, pixels are arranged from left to right until the width is reached. Each pixel occupies a number of bits appropriate for its format, with most formats representing each pixel as one or more whole bytes (in some indexed formats, instead multiple pixels are packed into each byte), and a byte order given by the format. After encoding all pixels, any remaining bytes to reach the pitch are used as padding to reach a desired alignment, and have undefined contents.
--
--     When a surface holds YUV format data, the planes are assumed to be contiguous without padding between them, e.g. a 32x32 surface in NV12 format with a pitch of 32 would consist of 32x32 bytes of Y plane followed by 32x16 bytes of UV plane.
--
--     When a surface holds MJPG format data, pixels points at the compressed JPEG image and pitch is the length of that data.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_CreateSurface', 'sDL_DestroySurface'
--
--     [C declaration]: @struct SDL_Surface@, defined at @SDL3\/SDL_surface.h 138:8@
data SDL_Surface = SDL_Surface
  { SDL_Surface -> SDL_SurfaceFlags
flags :: SDL_SurfaceFlags
  -- ^ The flags of the surface, read-only
  --
  --          [C declaration]: @flags@, defined at @SDL3\/SDL_surface.h 140:22@
  , SDL_Surface -> SDL_PixelFormat
format :: SDL3.Sys.Bindgen.Pixels.SDL_PixelFormat
  -- ^ The format of the surface, read-only
  --
  --          [C declaration]: @format@, defined at @SDL3\/SDL_surface.h 141:21@
  , SDL_Surface -> CInt
w :: BG.CInt
  -- ^ The width of the surface, read-only.
  --
  --          [C declaration]: @w@, defined at @SDL3\/SDL_surface.h 142:9@
  , SDL_Surface -> CInt
h :: BG.CInt
  -- ^ The height of the surface, read-only.
  --
  --          [C declaration]: @h@, defined at @SDL3\/SDL_surface.h 143:9@
  , SDL_Surface -> CInt
pitch :: BG.CInt
  -- ^ The distance in bytes between rows of pixels, read-only
  --
  --          [C declaration]: @pitch@, defined at @SDL3\/SDL_surface.h 144:9@
  , SDL_Surface -> Ptr Void
pixels :: BG.Ptr BG.Void
  -- ^ A pointer to the pixels of the surface, the pixels are writeable if non-NULL
  --
  --          [C declaration]: @pixels@, defined at @SDL3\/SDL_surface.h 145:11@
  , SDL_Surface -> CInt
refcount :: BG.CInt
  -- ^ Application reference count, used when freeing surface
  --
  --          [C declaration]: @refcount@, defined at @SDL3\/SDL_surface.h 147:9@
  , SDL_Surface -> Ptr Void
reserved :: BG.Ptr BG.Void
  -- ^ Reserved for internal use
  --
  --          [C declaration]: @reserved@, defined at @SDL3\/SDL_surface.h 149:11@
  }
  deriving stock ((forall x. SDL_Surface -> Rep SDL_Surface x)
-> (forall x. Rep SDL_Surface x -> SDL_Surface)
-> Generic SDL_Surface
forall x. Rep SDL_Surface x -> SDL_Surface
forall x. SDL_Surface -> Rep SDL_Surface x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_Surface -> Rep SDL_Surface x
from :: forall x. SDL_Surface -> Rep SDL_Surface x
$cto :: forall x. Rep SDL_Surface x -> SDL_Surface
to :: forall x. Rep SDL_Surface x -> SDL_Surface
BG.Generic, SDL_Surface -> SDL_Surface -> Bool
(SDL_Surface -> SDL_Surface -> Bool)
-> (SDL_Surface -> SDL_Surface -> Bool) -> Eq SDL_Surface
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_Surface -> SDL_Surface -> Bool
== :: SDL_Surface -> SDL_Surface -> Bool
$c/= :: SDL_Surface -> SDL_Surface -> Bool
/= :: SDL_Surface -> SDL_Surface -> Bool
Eq, Int -> SDL_Surface -> ShowS
[SDL_Surface] -> ShowS
SDL_Surface -> String
(Int -> SDL_Surface -> ShowS)
-> (SDL_Surface -> String)
-> ([SDL_Surface] -> ShowS)
-> Show SDL_Surface
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_Surface -> ShowS
showsPrec :: Int -> SDL_Surface -> ShowS
$cshow :: SDL_Surface -> String
show :: SDL_Surface -> String
$cshowList :: [SDL_Surface] -> ShowS
showList :: [SDL_Surface] -> ShowS
Show)

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

  staticAlignment :: Proxy SDL_Surface -> Int
staticAlignment = \Proxy SDL_Surface
_ -> (Int
8 :: Int)

instance Marshal.ReadRaw SDL_Surface where
  readRaw :: Ptr SDL_Surface -> IO SDL_Surface
readRaw =
    \Ptr SDL_Surface
ptr0 ->
      (SDL_SurfaceFlags
 -> SDL_PixelFormat
 -> CInt
 -> CInt
 -> CInt
 -> Ptr Void
 -> CInt
 -> Ptr Void
 -> SDL_Surface)
-> IO
     (SDL_SurfaceFlags
      -> SDL_PixelFormat
      -> CInt
      -> CInt
      -> CInt
      -> Ptr Void
      -> CInt
      -> Ptr Void
      -> SDL_Surface)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_SurfaceFlags
-> SDL_PixelFormat
-> CInt
-> CInt
-> CInt
-> Ptr Void
-> CInt
-> Ptr Void
-> SDL_Surface
SDL_Surface
        IO
  (SDL_SurfaceFlags
   -> SDL_PixelFormat
   -> CInt
   -> CInt
   -> CInt
   -> Ptr Void
   -> CInt
   -> Ptr Void
   -> SDL_Surface)
-> IO SDL_SurfaceFlags
-> IO
     (SDL_PixelFormat
      -> CInt
      -> CInt
      -> CInt
      -> Ptr Void
      -> CInt
      -> Ptr Void
      -> SDL_Surface)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "flags"
-> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "flags")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags") Ptr SDL_Surface
ptr0
        IO
  (SDL_PixelFormat
   -> CInt
   -> CInt
   -> CInt
   -> Ptr Void
   -> CInt
   -> Ptr Void
   -> SDL_Surface)
-> IO SDL_PixelFormat
-> IO
     (CInt
      -> CInt -> CInt -> Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "format"
-> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "format")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"format") Ptr SDL_Surface
ptr0
        IO
  (CInt
   -> CInt -> CInt -> Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
-> IO CInt
-> IO (CInt -> CInt -> Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "w" -> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "w")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"w") Ptr SDL_Surface
ptr0
        IO (CInt -> CInt -> Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
-> IO CInt
-> IO (CInt -> Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "h" -> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "h")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"h") Ptr SDL_Surface
ptr0
        IO (CInt -> Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
-> IO CInt -> IO (Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "pitch"
-> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "pitch")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"pitch") Ptr SDL_Surface
ptr0
        IO (Ptr Void -> CInt -> Ptr Void -> SDL_Surface)
-> IO (Ptr Void) -> IO (CInt -> Ptr Void -> SDL_Surface)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "pixels"
-> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "pixels")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"pixels") Ptr SDL_Surface
ptr0
        IO (CInt -> Ptr Void -> SDL_Surface)
-> IO CInt -> IO (Ptr Void -> SDL_Surface)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "refcount"
-> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "refcount")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"refcount") Ptr SDL_Surface
ptr0
        IO (Ptr Void -> SDL_Surface) -> IO (Ptr Void) -> IO SDL_Surface
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "reserved"
-> Ptr SDL_Surface -> IO (CFieldType SDL_Surface "reserved")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"reserved") Ptr SDL_Surface
ptr0

instance Marshal.WriteRaw SDL_Surface where
  writeRaw :: Ptr SDL_Surface -> SDL_Surface -> IO ()
writeRaw =
    \Ptr SDL_Surface
ptr0 ->
      \SDL_Surface
s1 ->
        case SDL_Surface
s1 of
          SDL_Surface SDL_SurfaceFlags
flags2 SDL_PixelFormat
format3 CInt
w4 CInt
h5 CInt
pitch6 Ptr Void
pixels7 CInt
refcount8 Ptr Void
reserved9 ->
            Proxy "flags"
-> Ptr SDL_Surface -> CFieldType SDL_Surface "flags" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags") Ptr SDL_Surface
ptr0 CFieldType SDL_Surface "flags"
SDL_SurfaceFlags
flags2
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "format"
-> Ptr SDL_Surface -> CFieldType SDL_Surface "format" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"format") Ptr SDL_Surface
ptr0 CFieldType SDL_Surface "format"
SDL_PixelFormat
format3
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "w" -> Ptr SDL_Surface -> CFieldType SDL_Surface "w" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"w") Ptr SDL_Surface
ptr0 CInt
CFieldType SDL_Surface "w"
w4
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "h" -> Ptr SDL_Surface -> CFieldType SDL_Surface "h" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"h") Ptr SDL_Surface
ptr0 CInt
CFieldType SDL_Surface "h"
h5
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "pitch"
-> Ptr SDL_Surface -> CFieldType SDL_Surface "pitch" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"pitch") Ptr SDL_Surface
ptr0 CInt
CFieldType SDL_Surface "pitch"
pitch6
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "pixels"
-> Ptr SDL_Surface -> CFieldType SDL_Surface "pixels" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"pixels") Ptr SDL_Surface
ptr0 Ptr Void
CFieldType SDL_Surface "pixels"
pixels7
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "refcount"
-> Ptr SDL_Surface -> CFieldType SDL_Surface "refcount" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"refcount") Ptr SDL_Surface
ptr0 CInt
CFieldType SDL_Surface "refcount"
refcount8
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "reserved"
-> Ptr SDL_Surface -> CFieldType SDL_Surface "reserved" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"reserved") Ptr SDL_Surface
ptr0 Ptr Void
CFieldType SDL_Surface "reserved"
reserved9

deriving via Marshal.EquivStorable SDL_Surface instance BG.Storable SDL_Surface

deriving via Struct.IsStructViaReadRaw SDL_Surface instance Struct.IsStruct SDL_Surface

-- | The flags of the surface, read-only
--
--     [C declaration]: @flags@, defined at @SDL3\/SDL_surface.h 140:22@
instance
  (ty ~ SDL_SurfaceFlags)
  => BG.CompatHasField.HasField "flags" SDL_Surface ty
  where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { flags :: SDL_SurfaceFlags
flags = ty
SDL_SurfaceFlags
y1
            , format :: SDL_PixelFormat
format = 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 @"format" SDL_Surface
x0
            , w :: CInt
w = 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 @"w" SDL_Surface
x0
            , h :: CInt
h = 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 @"h" SDL_Surface
x0
            , pitch :: CInt
pitch = 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 @"pitch" SDL_Surface
x0
            , pixels :: Ptr Void
pixels = 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 @"pixels" SDL_Surface
x0
            , refcount :: CInt
refcount = 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 @"refcount" SDL_Surface
x0
            , reserved :: Ptr Void
reserved = 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 @"reserved" SDL_Surface
x0
            }
      , 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 @"flags" SDL_Surface
x0
      )

instance
  (ty ~ SDL_SurfaceFlags)
  => BG.HasField "flags" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "flags"
-> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "flags")
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 @"flags")

instance HasCField.HasCField SDL_Surface "flags" where
  type
    CFieldType SDL_Surface "flags" =
      SDL_SurfaceFlags

  offset# :: Proxy# SDL_Surface -> Proxy# "flags" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "flags"
_ -> Int
0

-- | The format of the surface, read-only
--
--     [C declaration]: @format@, defined at @SDL3\/SDL_surface.h 141:21@
instance
  (ty ~ SDL3.Sys.Bindgen.Pixels.SDL_PixelFormat)
  => BG.CompatHasField.HasField "format" SDL_Surface ty
  where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { format :: SDL_PixelFormat
format = ty
SDL_PixelFormat
y1
            , flags :: SDL_SurfaceFlags
flags = 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 @"flags" SDL_Surface
x0
            , w :: CInt
w = 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 @"w" SDL_Surface
x0
            , h :: CInt
h = 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 @"h" SDL_Surface
x0
            , pitch :: CInt
pitch = 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 @"pitch" SDL_Surface
x0
            , pixels :: Ptr Void
pixels = 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 @"pixels" SDL_Surface
x0
            , refcount :: CInt
refcount = 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 @"refcount" SDL_Surface
x0
            , reserved :: Ptr Void
reserved = 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 @"reserved" SDL_Surface
x0
            }
      , 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 @"format" SDL_Surface
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Pixels.SDL_PixelFormat)
  => BG.HasField "format" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "format"
-> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "format")
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 @"format")

instance HasCField.HasCField SDL_Surface "format" where
  type
    CFieldType SDL_Surface "format" =
      SDL3.Sys.Bindgen.Pixels.SDL_PixelFormat

  offset# :: Proxy# SDL_Surface -> Proxy# "format" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "format"
_ -> Int
4

-- | The width of the surface, read-only.
--
--     [C declaration]: @w@, defined at @SDL3\/SDL_surface.h 142:9@
instance (ty ~ BG.CInt) => BG.CompatHasField.HasField "w" SDL_Surface ty where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { w :: CInt
w = ty
CInt
y1
            , flags :: SDL_SurfaceFlags
flags = 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 @"flags" SDL_Surface
x0
            , format :: SDL_PixelFormat
format = 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 @"format" SDL_Surface
x0
            , h :: CInt
h = 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 @"h" SDL_Surface
x0
            , pitch :: CInt
pitch = 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 @"pitch" SDL_Surface
x0
            , pixels :: Ptr Void
pixels = 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 @"pixels" SDL_Surface
x0
            , refcount :: CInt
refcount = 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 @"refcount" SDL_Surface
x0
            , reserved :: Ptr Void
reserved = 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 @"reserved" SDL_Surface
x0
            }
      , 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 @"w" SDL_Surface
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "w" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "w" -> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "w")
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 @"w")

instance HasCField.HasCField SDL_Surface "w" where
  type CFieldType SDL_Surface "w" = BG.CInt

  offset# :: Proxy# SDL_Surface -> Proxy# "w" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "w"
_ -> Int
8

-- | The height of the surface, read-only.
--
--     [C declaration]: @h@, defined at @SDL3\/SDL_surface.h 143:9@
instance (ty ~ BG.CInt) => BG.CompatHasField.HasField "h" SDL_Surface ty where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { h :: CInt
h = ty
CInt
y1
            , flags :: SDL_SurfaceFlags
flags = 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 @"flags" SDL_Surface
x0
            , format :: SDL_PixelFormat
format = 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 @"format" SDL_Surface
x0
            , w :: CInt
w = 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 @"w" SDL_Surface
x0
            , pitch :: CInt
pitch = 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 @"pitch" SDL_Surface
x0
            , pixels :: Ptr Void
pixels = 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 @"pixels" SDL_Surface
x0
            , refcount :: CInt
refcount = 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 @"refcount" SDL_Surface
x0
            , reserved :: Ptr Void
reserved = 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 @"reserved" SDL_Surface
x0
            }
      , 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 @"h" SDL_Surface
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "h" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "h" -> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "h")
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 @"h")

instance HasCField.HasCField SDL_Surface "h" where
  type CFieldType SDL_Surface "h" = BG.CInt

  offset# :: Proxy# SDL_Surface -> Proxy# "h" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "h"
_ -> Int
12

-- | The distance in bytes between rows of pixels, read-only
--
--     [C declaration]: @pitch@, defined at @SDL3\/SDL_surface.h 144:9@
instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "pitch" SDL_Surface ty
  where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { pitch :: CInt
pitch = ty
CInt
y1
            , flags :: SDL_SurfaceFlags
flags = 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 @"flags" SDL_Surface
x0
            , format :: SDL_PixelFormat
format = 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 @"format" SDL_Surface
x0
            , w :: CInt
w = 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 @"w" SDL_Surface
x0
            , h :: CInt
h = 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 @"h" SDL_Surface
x0
            , pixels :: Ptr Void
pixels = 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 @"pixels" SDL_Surface
x0
            , refcount :: CInt
refcount = 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 @"refcount" SDL_Surface
x0
            , reserved :: Ptr Void
reserved = 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 @"reserved" SDL_Surface
x0
            }
      , 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 @"pitch" SDL_Surface
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "pitch" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "pitch"
-> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "pitch")
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 @"pitch")

instance HasCField.HasCField SDL_Surface "pitch" where
  type CFieldType SDL_Surface "pitch" = BG.CInt

  offset# :: Proxy# SDL_Surface -> Proxy# "pitch" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "pitch"
_ -> Int
16

-- | A pointer to the pixels of the surface, the pixels are writeable if non-NULL
--
--     [C declaration]: @pixels@, defined at @SDL3\/SDL_surface.h 145:11@
instance
  (ty ~ BG.Ptr BG.Void)
  => BG.CompatHasField.HasField "pixels" SDL_Surface ty
  where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { pixels :: Ptr Void
pixels = ty
Ptr Void
y1
            , flags :: SDL_SurfaceFlags
flags = 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 @"flags" SDL_Surface
x0
            , format :: SDL_PixelFormat
format = 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 @"format" SDL_Surface
x0
            , w :: CInt
w = 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 @"w" SDL_Surface
x0
            , h :: CInt
h = 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 @"h" SDL_Surface
x0
            , pitch :: CInt
pitch = 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 @"pitch" SDL_Surface
x0
            , refcount :: CInt
refcount = 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 @"refcount" SDL_Surface
x0
            , reserved :: Ptr Void
reserved = 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 @"reserved" SDL_Surface
x0
            }
      , 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 @"pixels" SDL_Surface
x0
      )

instance
  (ty ~ BG.Ptr BG.Void)
  => BG.HasField "pixels" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "pixels"
-> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "pixels")
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 @"pixels")

instance HasCField.HasCField SDL_Surface "pixels" where
  type CFieldType SDL_Surface "pixels" = BG.Ptr BG.Void

  offset# :: Proxy# SDL_Surface -> Proxy# "pixels" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "pixels"
_ -> Int
24

-- | Application reference count, used when freeing surface
--
--     [C declaration]: @refcount@, defined at @SDL3\/SDL_surface.h 147:9@
instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "refcount" SDL_Surface ty
  where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { refcount :: CInt
refcount = ty
CInt
y1
            , flags :: SDL_SurfaceFlags
flags = 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 @"flags" SDL_Surface
x0
            , format :: SDL_PixelFormat
format = 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 @"format" SDL_Surface
x0
            , w :: CInt
w = 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 @"w" SDL_Surface
x0
            , h :: CInt
h = 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 @"h" SDL_Surface
x0
            , pitch :: CInt
pitch = 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 @"pitch" SDL_Surface
x0
            , pixels :: Ptr Void
pixels = 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 @"pixels" SDL_Surface
x0
            , reserved :: Ptr Void
reserved = 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 @"reserved" SDL_Surface
x0
            }
      , 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 @"refcount" SDL_Surface
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "refcount" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "refcount"
-> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "refcount")
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 @"refcount")

instance HasCField.HasCField SDL_Surface "refcount" where
  type CFieldType SDL_Surface "refcount" = BG.CInt

  offset# :: Proxy# SDL_Surface -> Proxy# "refcount" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "refcount"
_ -> Int
32

-- | Reserved for internal use
--
--     [C declaration]: @reserved@, defined at @SDL3\/SDL_surface.h 149:11@
instance
  (ty ~ BG.Ptr BG.Void)
  => BG.CompatHasField.HasField "reserved" SDL_Surface ty
  where
  hasField :: SDL_Surface -> (ty -> SDL_Surface, ty)
hasField =
    \SDL_Surface
x0 ->
      ( \ty
y1 ->
          SDL_Surface
            { reserved :: Ptr Void
reserved = ty
Ptr Void
y1
            , flags :: SDL_SurfaceFlags
flags = 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 @"flags" SDL_Surface
x0
            , format :: SDL_PixelFormat
format = 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 @"format" SDL_Surface
x0
            , w :: CInt
w = 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 @"w" SDL_Surface
x0
            , h :: CInt
h = 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 @"h" SDL_Surface
x0
            , pitch :: CInt
pitch = 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 @"pitch" SDL_Surface
x0
            , pixels :: Ptr Void
pixels = 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 @"pixels" SDL_Surface
x0
            , refcount :: CInt
refcount = 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 @"refcount" SDL_Surface
x0
            }
      , 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 @"reserved" SDL_Surface
x0
      )

instance
  (ty ~ BG.Ptr BG.Void)
  => BG.HasField "reserved" (BG.Ptr SDL_Surface) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Surface -> Ptr ty
getField = Proxy "reserved"
-> Ptr SDL_Surface -> Ptr (CFieldType SDL_Surface "reserved")
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 @"reserved")

instance HasCField.HasCField SDL_Surface "reserved" where
  type
    CFieldType SDL_Surface "reserved" =
      BG.Ptr BG.Void

  offset# :: Proxy# SDL_Surface -> Proxy# "reserved" -> Int
offset# = \Proxy# SDL_Surface
_ -> \Proxy# "reserved"
_ -> Int
40

-- | [C declaration]: @macro SDL_PROP_SURFACE_SDR_WHITE_POINT_FLOAT@, literal @\"SDL.surface.SDR_white_point\"@, defined at @SDL3\/SDL_surface.h 261:9@
sDL_PROP_SURFACE_SDR_WHITE_POINT_FLOAT :: BG.ByteString
sDL_PROP_SURFACE_SDR_WHITE_POINT_FLOAT :: ByteString
sDL_PROP_SURFACE_SDR_WHITE_POINT_FLOAT =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x73
    , Word8
0x75
    , Word8
0x72
    , Word8
0x66
    , Word8
0x61
    , Word8
0x63
    , Word8
0x65
    , Word8
0x2E
    , Word8
0x53
    , Word8
0x44
    , Word8
0x52
    , Word8
0x5F
    , Word8
0x77
    , Word8
0x68
    , Word8
0x69
    , Word8
0x74
    , Word8
0x65
    , Word8
0x5F
    , Word8
0x70
    , Word8
0x6F
    , Word8
0x69
    , Word8
0x6E
    , Word8
0x74
    ]

-- | [C declaration]: @macro SDL_PROP_SURFACE_HDR_HEADROOM_FLOAT@, literal @\"SDL.surface.HDR_headroom\"@, defined at @SDL3\/SDL_surface.h 262:9@
sDL_PROP_SURFACE_HDR_HEADROOM_FLOAT :: BG.ByteString
sDL_PROP_SURFACE_HDR_HEADROOM_FLOAT :: ByteString
sDL_PROP_SURFACE_HDR_HEADROOM_FLOAT =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x73
    , Word8
0x75
    , Word8
0x72
    , Word8
0x66
    , Word8
0x61
    , Word8
0x63
    , Word8
0x65
    , Word8
0x2E
    , Word8
0x48
    , Word8
0x44
    , Word8
0x52
    , Word8
0x5F
    , Word8
0x68
    , Word8
0x65
    , Word8
0x61
    , Word8
0x64
    , Word8
0x72
    , Word8
0x6F
    , Word8
0x6F
    , Word8
0x6D
    ]

-- | [C declaration]: @macro SDL_PROP_SURFACE_TONEMAP_OPERATOR_STRING@, literal @\"SDL.surface.tonemap\"@, defined at @SDL3\/SDL_surface.h 263:9@
sDL_PROP_SURFACE_TONEMAP_OPERATOR_STRING :: BG.ByteString
sDL_PROP_SURFACE_TONEMAP_OPERATOR_STRING :: ByteString
sDL_PROP_SURFACE_TONEMAP_OPERATOR_STRING =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x73
    , Word8
0x75
    , Word8
0x72
    , Word8
0x66
    , Word8
0x61
    , Word8
0x63
    , Word8
0x65
    , Word8
0x2E
    , Word8
0x74
    , Word8
0x6F
    , Word8
0x6E
    , Word8
0x65
    , Word8
0x6D
    , Word8
0x61
    , Word8
0x70
    ]

-- | [C declaration]: @macro SDL_PROP_SURFACE_HOTSPOT_X_NUMBER@, literal @\"SDL.surface.hotspot.x\"@, defined at @SDL3\/SDL_surface.h 264:9@
sDL_PROP_SURFACE_HOTSPOT_X_NUMBER :: BG.ByteString
sDL_PROP_SURFACE_HOTSPOT_X_NUMBER :: ByteString
sDL_PROP_SURFACE_HOTSPOT_X_NUMBER =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x73
    , Word8
0x75
    , Word8
0x72
    , Word8
0x66
    , Word8
0x61
    , Word8
0x63
    , Word8
0x65
    , Word8
0x2E
    , Word8
0x68
    , Word8
0x6F
    , Word8
0x74
    , Word8
0x73
    , Word8
0x70
    , Word8
0x6F
    , Word8
0x74
    , Word8
0x2E
    , Word8
0x78
    ]

-- | [C declaration]: @macro SDL_PROP_SURFACE_HOTSPOT_Y_NUMBER@, literal @\"SDL.surface.hotspot.y\"@, defined at @SDL3\/SDL_surface.h 265:9@
sDL_PROP_SURFACE_HOTSPOT_Y_NUMBER :: BG.ByteString
sDL_PROP_SURFACE_HOTSPOT_Y_NUMBER :: ByteString
sDL_PROP_SURFACE_HOTSPOT_Y_NUMBER =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x73
    , Word8
0x75
    , Word8
0x72
    , Word8
0x66
    , Word8
0x61
    , Word8
0x63
    , Word8
0x65
    , Word8
0x2E
    , Word8
0x68
    , Word8
0x6F
    , Word8
0x74
    , Word8
0x73
    , Word8
0x70
    , Word8
0x6F
    , Word8
0x74
    , Word8
0x2E
    , Word8
0x79
    ]

-- | [C declaration]: @macro SDL_PROP_SURFACE_ROTATION_FLOAT@, literal @\"SDL.surface.rotation\"@, defined at @SDL3\/SDL_surface.h 266:9@
sDL_PROP_SURFACE_ROTATION_FLOAT :: BG.ByteString
sDL_PROP_SURFACE_ROTATION_FLOAT :: ByteString
sDL_PROP_SURFACE_ROTATION_FLOAT =
  [Word8] -> ByteString
BG.pack
    [ Word8
0x53
    , Word8
0x44
    , Word8
0x4C
    , Word8
0x2E
    , Word8
0x73
    , Word8
0x75
    , Word8
0x72
    , Word8
0x66
    , Word8
0x61
    , Word8
0x63
    , Word8
0x65
    , Word8
0x2E
    , Word8
0x72
    , Word8
0x6F
    , Word8
0x74
    , Word8
0x61
    , Word8
0x74
    , Word8
0x69
    , Word8
0x6F
    , Word8
0x6E
    ]