{-# 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 offers facilities for pixel management.
--
--     Largely these facilities deal with pixel /format/: what does this set of bits represent?
--
--     If you mostly want to think of a pixel as some combination of red, green, blue, and maybe alpha intensities, this is all pretty straightforward, and in many cases, is enough information to build a perfectly fine game.
--
--     However, the actual definition of a pixel is more complex than that:
--
--     Pixels are a representation of a color in a particular color space.
--
--     The first characteristic of a color space is the color type. SDL understands two different color types, RGB and YCbCr, or in SDL also referred to as YUV.
--
--     RGB colors consist of red, green, and blue channels of color that are added together to represent the colors we see on the screen.
--
--     [https:\/\/en.wikipedia.org\/wiki\/RGB_color_model](https://en.wikipedia.org/wiki/RGB_color_model)
--
--     YCbCr colors represent colors as a Y luma brightness component and red and blue chroma color offsets. This color representation takes advantage of the fact that the human eye is more sensitive to brightness than the color in an image. The Cb and Cr components are often compressed and have lower resolution than the luma component.
--
--     [https:\/\/en.wikipedia.org\/wiki\/YCbCr](https://en.wikipedia.org/wiki/YCbCr)
--
--     When the color information in YCbCr is compressed, the Y pixels are left at full resolution and each Cr and Cb pixel represents an average of the color information in a block of Y pixels. The chroma location determines where in that block of pixels the color information is coming from.
--
--     The color range defines how much of the pixel to use when converting a pixel into a color on the display. When the full color range is used, the entire numeric range of the pixel bits is significant. When narrow color range is used, for historical reasons, the pixel uses only a portion of the numeric range to represent colors.
--
--     The color primaries and white point are a definition of the colors in the color space relative to the standard XYZ color space.
--
--     [https:\/\/en.wikipedia.org\/wiki\/CIE_1931_color_space](https://en.wikipedia.org/wiki/CIE_1931_color_space)
--
--     The transfer characteristic, or opto-electrical transfer function (OETF), is the way a color is converted from mathematically linear space into a non-linear output signals.
--
--     [https:\/\/en.wikipedia.org\/wiki\/Rec._709\#Transfer_characteristics](https://en.wikipedia.org/wiki/Rec._709#Transfer_characteristics)
--
--     The matrix coefficients are used to convert between YCbCr and RGB colors. A fully opaque 8-bit alpha value.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_ALPHA_TRANSPARENT'
module SDL3.Sys.Bindgen.Pixels (
  SDL3.Sys.Bindgen.Pixels.sDL_ALPHA_OPAQUE,
  SDL3.Sys.Bindgen.Pixels.sDL_ALPHA_OPAQUE_FLOAT,
  SDL3.Sys.Bindgen.Pixels.sDL_ALPHA_TRANSPARENT,
  SDL3.Sys.Bindgen.Pixels.sDL_ALPHA_TRANSPARENT_FLOAT,
  SDL3.Sys.Bindgen.Pixels.SDL_PixelType (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_UNKNOWN,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_INDEX1,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_INDEX4,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_INDEX8,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_PACKED8,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_PACKED16,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_PACKED32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_ARRAYU8,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_ARRAYU16,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_ARRAYU32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_ARRAYF16,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_ARRAYF32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELTYPE_INDEX2,
  SDL3.Sys.Bindgen.Pixels.SDL_BitmapOrder (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_BITMAPORDER_NONE,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_BITMAPORDER_4321,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_BITMAPORDER_1234,
  SDL3.Sys.Bindgen.Pixels.SDL_PackedOrder (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_NONE,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_XRGB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_RGBX,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_ARGB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_RGBA,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_XBGR,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_BGRX,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_ABGR,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDORDER_BGRA,
  SDL3.Sys.Bindgen.Pixels.SDL_ArrayOrder (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_ARRAYORDER_NONE,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_ARRAYORDER_RGB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_ARRAYORDER_RGBA,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_ARRAYORDER_ARGB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_ARRAYORDER_BGR,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_ARRAYORDER_BGRA,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_ARRAYORDER_ABGR,
  SDL3.Sys.Bindgen.Pixels.SDL_PackedLayout (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_NONE,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_332,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_4444,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_1555,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_5551,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_565,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_2101010,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PACKEDLAYOUT_1010102,
  SDL3.Sys.Bindgen.Pixels.sDL_DEFINE_PIXELFORMAT,
  SDL3.Sys.Bindgen.Pixels.sDL_PIXELFLAG,
  SDL3.Sys.Bindgen.Pixels.sDL_PIXELTYPE,
  SDL3.Sys.Bindgen.Pixels.sDL_PIXELORDER,
  SDL3.Sys.Bindgen.Pixels.sDL_PIXELLAYOUT,
  SDL3.Sys.Bindgen.Pixels.SDL_PixelFormat (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_UNKNOWN,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_INDEX1LSB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_INDEX1MSB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_INDEX2LSB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_INDEX2MSB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_INDEX4LSB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_INDEX4MSB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_INDEX8,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGB332,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XRGB4444,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XBGR4444,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XRGB1555,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XBGR1555,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB4444,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBA4444,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR4444,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRA4444,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB1555,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBA5551,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR1555,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRA5551,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGB565,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGR565,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGB24,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGR24,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XRGB8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBX8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XBGR8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRX8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBA8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRA8888,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XRGB2101010,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XBGR2101010,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB2101010,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR2101010,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGB48,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGR48,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBA64,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB64,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRA64,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR64,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGB48_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGR48_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBA64_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB64_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRA64_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR64_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGB96_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGR96_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBA128_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB128_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRA128_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR128_FLOAT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_YV12,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_IYUV,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_YUY2,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_UYVY,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_YVYU,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_NV12,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_NV21,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_P010,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_EXTERNAL_OES,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_MJPG,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBA32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ARGB32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRA32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_ABGR32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_RGBX32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XRGB32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_BGRX32,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_PIXELFORMAT_XBGR32,
  SDL3.Sys.Bindgen.Pixels.SDL_ColorType (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_TYPE_UNKNOWN,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_TYPE_RGB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_TYPE_YCBCR,
  SDL3.Sys.Bindgen.Pixels.SDL_ColorRange (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_RANGE_UNKNOWN,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_RANGE_LIMITED,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_RANGE_FULL,
  SDL3.Sys.Bindgen.Pixels.SDL_ColorPrimaries (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_UNKNOWN,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_BT709,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_UNSPECIFIED,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_BT470M,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_BT470BG,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_BT601,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_SMPTE240,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_GENERIC_FILM,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_BT2020,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_XYZ,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_SMPTE431,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_SMPTE432,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_EBU3213,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLOR_PRIMARIES_CUSTOM,
  SDL3.Sys.Bindgen.Pixels.SDL_TransferCharacteristics (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_UNKNOWN,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_BT709,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_GAMMA22,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_GAMMA28,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_BT601,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_SMPTE240,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_LINEAR,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_LOG100,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_IEC61966,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_BT1361,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_SRGB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_PQ,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_SMPTE428,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_HLG,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_TRANSFER_CHARACTERISTICS_CUSTOM,
  SDL3.Sys.Bindgen.Pixels.SDL_MatrixCoefficients (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_IDENTITY,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_BT709,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_UNSPECIFIED,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_FCC,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_BT470BG,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_BT601,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_SMPTE240,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_YCGCO,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_BT2020_NCL,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_BT2020_CL,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_SMPTE2085,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_ICTCP,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_MATRIX_COEFFICIENTS_CUSTOM,
  SDL3.Sys.Bindgen.Pixels.SDL_ChromaLocation (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_CHROMA_LOCATION_NONE,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_CHROMA_LOCATION_LEFT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_CHROMA_LOCATION_CENTER,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_CHROMA_LOCATION_TOPLEFT,
  SDL3.Sys.Bindgen.Pixels.SDL_Colorspace (..),
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_UNKNOWN,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_SRGB,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_SRGB_LINEAR,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_HDR10,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_JPEG,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_BT601_LIMITED,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_BT601_FULL,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_BT709_LIMITED,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_BT709_FULL,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_BT2020_LIMITED,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_BT2020_FULL,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_RGB_DEFAULT,
  pattern SDL3.Sys.Bindgen.Pixels.SDL_COLORSPACE_YUV_DEFAULT,
  SDL3.Sys.Bindgen.Pixels.SDL_Color (..),
  SDL3.Sys.Bindgen.Pixels.SDL_FColor (..),
  SDL3.Sys.Bindgen.Pixels.SDL_Palette (..),
  SDL3.Sys.Bindgen.Pixels.SDL_PixelFormatDetails (..),
)
where

import Prelude (Eq, Int, Ord, Read, Show, pure, (<*>), (>>), type (~))

import C.Expr.HostPlatform qualified
import HsBindgen.Runtime.CEnum qualified as CEnum
import HsBindgen.Runtime.ConstantArray qualified as CA
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.Stdinc qualified

-- | [C declaration]: @macro SDL_ALPHA_OPAQUE@, defined at @SDL3\/SDL_pixels.h 100:9@
sDL_ALPHA_OPAQUE :: BG.CInt
sDL_ALPHA_OPAQUE :: CInt
sDL_ALPHA_OPAQUE = (CInt
255 :: BG.CInt)

-- | A fully opaque floating point alpha value.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_ALPHA_TRANSPARENT_FLOAT'
--
--     [C declaration]: @macro SDL_ALPHA_OPAQUE_FLOAT@, defined at @SDL3\/SDL_pixels.h 109:9@
sDL_ALPHA_OPAQUE_FLOAT :: BG.CFloat
sDL_ALPHA_OPAQUE_FLOAT :: CFloat
sDL_ALPHA_OPAQUE_FLOAT = (CFloat
1.0 :: BG.CFloat)

-- | A fully transparent 8-bit alpha value.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_ALPHA_OPAQUE'
--
--     [C declaration]: @macro SDL_ALPHA_TRANSPARENT@, defined at @SDL3\/SDL_pixels.h 118:9@
sDL_ALPHA_TRANSPARENT :: BG.CInt
sDL_ALPHA_TRANSPARENT :: CInt
sDL_ALPHA_TRANSPARENT = (CInt
0 :: BG.CInt)

-- | A fully transparent floating point alpha value.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_ALPHA_OPAQUE_FLOAT'
--
--     [C declaration]: @macro SDL_ALPHA_TRANSPARENT_FLOAT@, defined at @SDL3\/SDL_pixels.h 127:9@
sDL_ALPHA_TRANSPARENT_FLOAT :: BG.CFloat
sDL_ALPHA_TRANSPARENT_FLOAT :: CFloat
sDL_ALPHA_TRANSPARENT_FLOAT = (CFloat
0.0 :: BG.CFloat)

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

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

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

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

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

deriving via Marshal.EquivStorable SDL_PixelType instance BG.Storable SDL_PixelType

deriving via BG.CUInt instance BG.Prim SDL_PixelType

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

  toCEnum :: CEnumZ SDL_PixelType -> SDL_PixelType
toCEnum = CUInt -> SDL_PixelType
CEnumZ SDL_PixelType -> SDL_PixelType
SDL_PixelType

  fromCEnum :: SDL_PixelType -> CEnumZ SDL_PixelType
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_PixelType -> DeclaredValues SDL_PixelType
declaredValues =
    \proxy SDL_PixelType
_ ->
      [(CEnumZ SDL_PixelType, NonEmpty String)]
-> DeclaredValues SDL_PixelType
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_PixelType
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_UNKNOWN")
        , (CUInt
CEnumZ SDL_PixelType
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_INDEX1")
        , (CUInt
CEnumZ SDL_PixelType
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_INDEX4")
        , (CUInt
CEnumZ SDL_PixelType
3, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_INDEX8")
        , (CUInt
CEnumZ SDL_PixelType
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_PACKED8")
        , (CUInt
CEnumZ SDL_PixelType
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_PACKED16")
        , (CUInt
CEnumZ SDL_PixelType
6, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_PACKED32")
        , (CUInt
CEnumZ SDL_PixelType
7, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_ARRAYU8")
        , (CUInt
CEnumZ SDL_PixelType
8, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_ARRAYU16")
        , (CUInt
CEnumZ SDL_PixelType
9, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_ARRAYU32")
        , (CUInt
CEnumZ SDL_PixelType
10, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_ARRAYF16")
        , (CUInt
CEnumZ SDL_PixelType
11, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_ARRAYF32")
        , (CUInt
CEnumZ SDL_PixelType
12, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELTYPE_INDEX2")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_PixelType where
  minDeclaredValue :: SDL_PixelType
minDeclaredValue = SDL_PixelType
SDL_PIXELTYPE_UNKNOWN

  maxDeclaredValue :: SDL_PixelType
maxDeclaredValue = SDL_PixelType
SDL_PIXELTYPE_INDEX2

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_PIXELTYPE_UNKNOWN@, defined at @SDL3\/SDL_pixels.h 136:5@
pattern SDL_PIXELTYPE_UNKNOWN :: SDL_PixelType
pattern $mSDL_PIXELTYPE_UNKNOWN :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_UNKNOWN :: SDL_PixelType
SDL_PIXELTYPE_UNKNOWN = SDL_PixelType 0

-- | [C declaration]: @SDL_PIXELTYPE_INDEX1@, defined at @SDL3\/SDL_pixels.h 137:5@
pattern SDL_PIXELTYPE_INDEX1 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_INDEX1 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_INDEX1 :: SDL_PixelType
SDL_PIXELTYPE_INDEX1 = SDL_PixelType 1

-- | [C declaration]: @SDL_PIXELTYPE_INDEX4@, defined at @SDL3\/SDL_pixels.h 138:5@
pattern SDL_PIXELTYPE_INDEX4 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_INDEX4 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_INDEX4 :: SDL_PixelType
SDL_PIXELTYPE_INDEX4 = SDL_PixelType 2

-- | [C declaration]: @SDL_PIXELTYPE_INDEX8@, defined at @SDL3\/SDL_pixels.h 139:5@
pattern SDL_PIXELTYPE_INDEX8 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_INDEX8 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_INDEX8 :: SDL_PixelType
SDL_PIXELTYPE_INDEX8 = SDL_PixelType 3

-- | [C declaration]: @SDL_PIXELTYPE_PACKED8@, defined at @SDL3\/SDL_pixels.h 140:5@
pattern SDL_PIXELTYPE_PACKED8 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_PACKED8 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_PACKED8 :: SDL_PixelType
SDL_PIXELTYPE_PACKED8 = SDL_PixelType 4

-- | [C declaration]: @SDL_PIXELTYPE_PACKED16@, defined at @SDL3\/SDL_pixels.h 141:5@
pattern SDL_PIXELTYPE_PACKED16 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_PACKED16 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_PACKED16 :: SDL_PixelType
SDL_PIXELTYPE_PACKED16 = SDL_PixelType 5

-- | [C declaration]: @SDL_PIXELTYPE_PACKED32@, defined at @SDL3\/SDL_pixels.h 142:5@
pattern SDL_PIXELTYPE_PACKED32 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_PACKED32 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_PACKED32 :: SDL_PixelType
SDL_PIXELTYPE_PACKED32 = SDL_PixelType 6

-- | [C declaration]: @SDL_PIXELTYPE_ARRAYU8@, defined at @SDL3\/SDL_pixels.h 143:5@
pattern SDL_PIXELTYPE_ARRAYU8 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_ARRAYU8 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_ARRAYU8 :: SDL_PixelType
SDL_PIXELTYPE_ARRAYU8 = SDL_PixelType 7

-- | [C declaration]: @SDL_PIXELTYPE_ARRAYU16@, defined at @SDL3\/SDL_pixels.h 144:5@
pattern SDL_PIXELTYPE_ARRAYU16 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_ARRAYU16 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_ARRAYU16 :: SDL_PixelType
SDL_PIXELTYPE_ARRAYU16 = SDL_PixelType 8

-- | [C declaration]: @SDL_PIXELTYPE_ARRAYU32@, defined at @SDL3\/SDL_pixels.h 145:5@
pattern SDL_PIXELTYPE_ARRAYU32 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_ARRAYU32 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_ARRAYU32 :: SDL_PixelType
SDL_PIXELTYPE_ARRAYU32 = SDL_PixelType 9

-- | [C declaration]: @SDL_PIXELTYPE_ARRAYF16@, defined at @SDL3\/SDL_pixels.h 146:5@
pattern SDL_PIXELTYPE_ARRAYF16 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_ARRAYF16 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_ARRAYF16 :: SDL_PixelType
SDL_PIXELTYPE_ARRAYF16 = SDL_PixelType 10

-- | [C declaration]: @SDL_PIXELTYPE_ARRAYF32@, defined at @SDL3\/SDL_pixels.h 147:5@
pattern SDL_PIXELTYPE_ARRAYF32 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_ARRAYF32 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_ARRAYF32 :: SDL_PixelType
SDL_PIXELTYPE_ARRAYF32 = SDL_PixelType 11

-- | [C declaration]: @SDL_PIXELTYPE_INDEX2@, defined at @SDL3\/SDL_pixels.h 149:5@
pattern SDL_PIXELTYPE_INDEX2 :: SDL_PixelType
pattern $mSDL_PIXELTYPE_INDEX2 :: forall {r}. SDL_PixelType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELTYPE_INDEX2 :: SDL_PixelType
SDL_PIXELTYPE_INDEX2 = SDL_PixelType 12

-- | Bitmap pixel order, high bit -> low bit.
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_BitmapOrder@, defined at @SDL3\/SDL_pixels.h 157:14@
newtype SDL_BitmapOrder = SDL_BitmapOrder
  { SDL_BitmapOrder -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_BitmapOrder -> Rep SDL_BitmapOrder x)
-> (forall x. Rep SDL_BitmapOrder x -> SDL_BitmapOrder)
-> Generic SDL_BitmapOrder
forall x. Rep SDL_BitmapOrder x -> SDL_BitmapOrder
forall x. SDL_BitmapOrder -> Rep SDL_BitmapOrder x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_BitmapOrder -> Rep SDL_BitmapOrder x
from :: forall x. SDL_BitmapOrder -> Rep SDL_BitmapOrder x
$cto :: forall x. Rep SDL_BitmapOrder x -> SDL_BitmapOrder
to :: forall x. Rep SDL_BitmapOrder x -> SDL_BitmapOrder
BG.Generic, SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
(SDL_BitmapOrder -> SDL_BitmapOrder -> Bool)
-> (SDL_BitmapOrder -> SDL_BitmapOrder -> Bool)
-> Eq SDL_BitmapOrder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
== :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
$c/= :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
/= :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
Eq, Eq SDL_BitmapOrder
Eq SDL_BitmapOrder =>
(SDL_BitmapOrder -> SDL_BitmapOrder -> Ordering)
-> (SDL_BitmapOrder -> SDL_BitmapOrder -> Bool)
-> (SDL_BitmapOrder -> SDL_BitmapOrder -> Bool)
-> (SDL_BitmapOrder -> SDL_BitmapOrder -> Bool)
-> (SDL_BitmapOrder -> SDL_BitmapOrder -> Bool)
-> (SDL_BitmapOrder -> SDL_BitmapOrder -> SDL_BitmapOrder)
-> (SDL_BitmapOrder -> SDL_BitmapOrder -> SDL_BitmapOrder)
-> Ord SDL_BitmapOrder
SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
SDL_BitmapOrder -> SDL_BitmapOrder -> Ordering
SDL_BitmapOrder -> SDL_BitmapOrder -> SDL_BitmapOrder
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_BitmapOrder -> SDL_BitmapOrder -> Ordering
compare :: SDL_BitmapOrder -> SDL_BitmapOrder -> Ordering
$c< :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
< :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
$c<= :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
<= :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
$c> :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
> :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
$c>= :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
>= :: SDL_BitmapOrder -> SDL_BitmapOrder -> Bool
$cmax :: SDL_BitmapOrder -> SDL_BitmapOrder -> SDL_BitmapOrder
max :: SDL_BitmapOrder -> SDL_BitmapOrder -> SDL_BitmapOrder
$cmin :: SDL_BitmapOrder -> SDL_BitmapOrder -> SDL_BitmapOrder
min :: SDL_BitmapOrder -> SDL_BitmapOrder -> SDL_BitmapOrder
Ord)
  deriving newtype (FFIType SDL_BitmapOrder -> SDL_BitmapOrder
SDL_BitmapOrder -> FFIType SDL_BitmapOrder
(SDL_BitmapOrder -> FFIType SDL_BitmapOrder)
-> (FFIType SDL_BitmapOrder -> SDL_BitmapOrder)
-> HasFFIType SDL_BitmapOrder
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_BitmapOrder -> FFIType SDL_BitmapOrder
toFFIType :: SDL_BitmapOrder -> FFIType SDL_BitmapOrder
$cfromFFIType :: FFIType SDL_BitmapOrder -> SDL_BitmapOrder
fromFFIType :: FFIType SDL_BitmapOrder -> SDL_BitmapOrder
BG.HasFFIType)

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

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

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

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

deriving via Marshal.EquivStorable SDL_BitmapOrder instance BG.Storable SDL_BitmapOrder

deriving via BG.CUInt instance BG.Prim SDL_BitmapOrder

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

  toCEnum :: CEnumZ SDL_BitmapOrder -> SDL_BitmapOrder
toCEnum = CUInt -> SDL_BitmapOrder
CEnumZ SDL_BitmapOrder -> SDL_BitmapOrder
SDL_BitmapOrder

  fromCEnum :: SDL_BitmapOrder -> CEnumZ SDL_BitmapOrder
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_BitmapOrder -> DeclaredValues SDL_BitmapOrder
declaredValues =
    \proxy SDL_BitmapOrder
_ ->
      [(CEnumZ SDL_BitmapOrder, NonEmpty String)]
-> DeclaredValues SDL_BitmapOrder
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_BitmapOrder
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_BITMAPORDER_NONE")
        , (CUInt
CEnumZ SDL_BitmapOrder
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_BITMAPORDER_4321")
        , (CUInt
CEnumZ SDL_BitmapOrder
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_BITMAPORDER_1234")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_BitmapOrder where
  minDeclaredValue :: SDL_BitmapOrder
minDeclaredValue = SDL_BitmapOrder
SDL_BITMAPORDER_NONE

  maxDeclaredValue :: SDL_BitmapOrder
maxDeclaredValue = SDL_BitmapOrder
SDL_BITMAPORDER_1234

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_BITMAPORDER_NONE@, defined at @SDL3\/SDL_pixels.h 159:5@
pattern SDL_BITMAPORDER_NONE :: SDL_BitmapOrder
pattern $mSDL_BITMAPORDER_NONE :: forall {r}. SDL_BitmapOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_BITMAPORDER_NONE :: SDL_BitmapOrder
SDL_BITMAPORDER_NONE = SDL_BitmapOrder 0

-- | [C declaration]: @SDL_BITMAPORDER_4321@, defined at @SDL3\/SDL_pixels.h 160:5@
pattern SDL_BITMAPORDER_4321 :: SDL_BitmapOrder
pattern $mSDL_BITMAPORDER_4321 :: forall {r}. SDL_BitmapOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_BITMAPORDER_4321 :: SDL_BitmapOrder
SDL_BITMAPORDER_4321 = SDL_BitmapOrder 1

-- | [C declaration]: @SDL_BITMAPORDER_1234@, defined at @SDL3\/SDL_pixels.h 161:5@
pattern SDL_BITMAPORDER_1234 :: SDL_BitmapOrder
pattern $mSDL_BITMAPORDER_1234 :: forall {r}. SDL_BitmapOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_BITMAPORDER_1234 :: SDL_BitmapOrder
SDL_BITMAPORDER_1234 = SDL_BitmapOrder 2

-- | Packed component order, high bit -> low bit.
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_PackedOrder@, defined at @SDL3\/SDL_pixels.h 169:14@
newtype SDL_PackedOrder = SDL_PackedOrder
  { SDL_PackedOrder -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_PackedOrder -> Rep SDL_PackedOrder x)
-> (forall x. Rep SDL_PackedOrder x -> SDL_PackedOrder)
-> Generic SDL_PackedOrder
forall x. Rep SDL_PackedOrder x -> SDL_PackedOrder
forall x. SDL_PackedOrder -> Rep SDL_PackedOrder x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_PackedOrder -> Rep SDL_PackedOrder x
from :: forall x. SDL_PackedOrder -> Rep SDL_PackedOrder x
$cto :: forall x. Rep SDL_PackedOrder x -> SDL_PackedOrder
to :: forall x. Rep SDL_PackedOrder x -> SDL_PackedOrder
BG.Generic, SDL_PackedOrder -> SDL_PackedOrder -> Bool
(SDL_PackedOrder -> SDL_PackedOrder -> Bool)
-> (SDL_PackedOrder -> SDL_PackedOrder -> Bool)
-> Eq SDL_PackedOrder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
== :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
$c/= :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
/= :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
Eq, Eq SDL_PackedOrder
Eq SDL_PackedOrder =>
(SDL_PackedOrder -> SDL_PackedOrder -> Ordering)
-> (SDL_PackedOrder -> SDL_PackedOrder -> Bool)
-> (SDL_PackedOrder -> SDL_PackedOrder -> Bool)
-> (SDL_PackedOrder -> SDL_PackedOrder -> Bool)
-> (SDL_PackedOrder -> SDL_PackedOrder -> Bool)
-> (SDL_PackedOrder -> SDL_PackedOrder -> SDL_PackedOrder)
-> (SDL_PackedOrder -> SDL_PackedOrder -> SDL_PackedOrder)
-> Ord SDL_PackedOrder
SDL_PackedOrder -> SDL_PackedOrder -> Bool
SDL_PackedOrder -> SDL_PackedOrder -> Ordering
SDL_PackedOrder -> SDL_PackedOrder -> SDL_PackedOrder
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_PackedOrder -> SDL_PackedOrder -> Ordering
compare :: SDL_PackedOrder -> SDL_PackedOrder -> Ordering
$c< :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
< :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
$c<= :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
<= :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
$c> :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
> :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
$c>= :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
>= :: SDL_PackedOrder -> SDL_PackedOrder -> Bool
$cmax :: SDL_PackedOrder -> SDL_PackedOrder -> SDL_PackedOrder
max :: SDL_PackedOrder -> SDL_PackedOrder -> SDL_PackedOrder
$cmin :: SDL_PackedOrder -> SDL_PackedOrder -> SDL_PackedOrder
min :: SDL_PackedOrder -> SDL_PackedOrder -> SDL_PackedOrder
Ord)
  deriving newtype (FFIType SDL_PackedOrder -> SDL_PackedOrder
SDL_PackedOrder -> FFIType SDL_PackedOrder
(SDL_PackedOrder -> FFIType SDL_PackedOrder)
-> (FFIType SDL_PackedOrder -> SDL_PackedOrder)
-> HasFFIType SDL_PackedOrder
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_PackedOrder -> FFIType SDL_PackedOrder
toFFIType :: SDL_PackedOrder -> FFIType SDL_PackedOrder
$cfromFFIType :: FFIType SDL_PackedOrder -> SDL_PackedOrder
fromFFIType :: FFIType SDL_PackedOrder -> SDL_PackedOrder
BG.HasFFIType)

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

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

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

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

deriving via Marshal.EquivStorable SDL_PackedOrder instance BG.Storable SDL_PackedOrder

deriving via BG.CUInt instance BG.Prim SDL_PackedOrder

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

  toCEnum :: CEnumZ SDL_PackedOrder -> SDL_PackedOrder
toCEnum = CUInt -> SDL_PackedOrder
CEnumZ SDL_PackedOrder -> SDL_PackedOrder
SDL_PackedOrder

  fromCEnum :: SDL_PackedOrder -> CEnumZ SDL_PackedOrder
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_PackedOrder -> DeclaredValues SDL_PackedOrder
declaredValues =
    \proxy SDL_PackedOrder
_ ->
      [(CEnumZ SDL_PackedOrder, NonEmpty String)]
-> DeclaredValues SDL_PackedOrder
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_PackedOrder
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_NONE")
        , (CUInt
CEnumZ SDL_PackedOrder
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_XRGB")
        , (CUInt
CEnumZ SDL_PackedOrder
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_RGBX")
        , (CUInt
CEnumZ SDL_PackedOrder
3, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_ARGB")
        , (CUInt
CEnumZ SDL_PackedOrder
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_RGBA")
        , (CUInt
CEnumZ SDL_PackedOrder
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_XBGR")
        , (CUInt
CEnumZ SDL_PackedOrder
6, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_BGRX")
        , (CUInt
CEnumZ SDL_PackedOrder
7, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_ABGR")
        , (CUInt
CEnumZ SDL_PackedOrder
8, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDORDER_BGRA")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_PackedOrder where
  minDeclaredValue :: SDL_PackedOrder
minDeclaredValue = SDL_PackedOrder
SDL_PACKEDORDER_NONE

  maxDeclaredValue :: SDL_PackedOrder
maxDeclaredValue = SDL_PackedOrder
SDL_PACKEDORDER_BGRA

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_PACKEDORDER_NONE@, defined at @SDL3\/SDL_pixels.h 171:5@
pattern SDL_PACKEDORDER_NONE :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_NONE :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_NONE :: SDL_PackedOrder
SDL_PACKEDORDER_NONE = SDL_PackedOrder 0

-- | [C declaration]: @SDL_PACKEDORDER_XRGB@, defined at @SDL3\/SDL_pixels.h 172:5@
pattern SDL_PACKEDORDER_XRGB :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_XRGB :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_XRGB :: SDL_PackedOrder
SDL_PACKEDORDER_XRGB = SDL_PackedOrder 1

-- | [C declaration]: @SDL_PACKEDORDER_RGBX@, defined at @SDL3\/SDL_pixels.h 173:5@
pattern SDL_PACKEDORDER_RGBX :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_RGBX :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_RGBX :: SDL_PackedOrder
SDL_PACKEDORDER_RGBX = SDL_PackedOrder 2

-- | [C declaration]: @SDL_PACKEDORDER_ARGB@, defined at @SDL3\/SDL_pixels.h 174:5@
pattern SDL_PACKEDORDER_ARGB :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_ARGB :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_ARGB :: SDL_PackedOrder
SDL_PACKEDORDER_ARGB = SDL_PackedOrder 3

-- | [C declaration]: @SDL_PACKEDORDER_RGBA@, defined at @SDL3\/SDL_pixels.h 175:5@
pattern SDL_PACKEDORDER_RGBA :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_RGBA :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_RGBA :: SDL_PackedOrder
SDL_PACKEDORDER_RGBA = SDL_PackedOrder 4

-- | [C declaration]: @SDL_PACKEDORDER_XBGR@, defined at @SDL3\/SDL_pixels.h 176:5@
pattern SDL_PACKEDORDER_XBGR :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_XBGR :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_XBGR :: SDL_PackedOrder
SDL_PACKEDORDER_XBGR = SDL_PackedOrder 5

-- | [C declaration]: @SDL_PACKEDORDER_BGRX@, defined at @SDL3\/SDL_pixels.h 177:5@
pattern SDL_PACKEDORDER_BGRX :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_BGRX :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_BGRX :: SDL_PackedOrder
SDL_PACKEDORDER_BGRX = SDL_PackedOrder 6

-- | [C declaration]: @SDL_PACKEDORDER_ABGR@, defined at @SDL3\/SDL_pixels.h 178:5@
pattern SDL_PACKEDORDER_ABGR :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_ABGR :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_ABGR :: SDL_PackedOrder
SDL_PACKEDORDER_ABGR = SDL_PackedOrder 7

-- | [C declaration]: @SDL_PACKEDORDER_BGRA@, defined at @SDL3\/SDL_pixels.h 179:5@
pattern SDL_PACKEDORDER_BGRA :: SDL_PackedOrder
pattern $mSDL_PACKEDORDER_BGRA :: forall {r}. SDL_PackedOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDORDER_BGRA :: SDL_PackedOrder
SDL_PACKEDORDER_BGRA = SDL_PackedOrder 8

-- | Array component order, low byte -> high byte.
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_ArrayOrder@, defined at @SDL3\/SDL_pixels.h 187:14@
newtype SDL_ArrayOrder = SDL_ArrayOrder
  { SDL_ArrayOrder -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_ArrayOrder -> Rep SDL_ArrayOrder x)
-> (forall x. Rep SDL_ArrayOrder x -> SDL_ArrayOrder)
-> Generic SDL_ArrayOrder
forall x. Rep SDL_ArrayOrder x -> SDL_ArrayOrder
forall x. SDL_ArrayOrder -> Rep SDL_ArrayOrder x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_ArrayOrder -> Rep SDL_ArrayOrder x
from :: forall x. SDL_ArrayOrder -> Rep SDL_ArrayOrder x
$cto :: forall x. Rep SDL_ArrayOrder x -> SDL_ArrayOrder
to :: forall x. Rep SDL_ArrayOrder x -> SDL_ArrayOrder
BG.Generic, SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
(SDL_ArrayOrder -> SDL_ArrayOrder -> Bool)
-> (SDL_ArrayOrder -> SDL_ArrayOrder -> Bool) -> Eq SDL_ArrayOrder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
== :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
$c/= :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
/= :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
Eq, Eq SDL_ArrayOrder
Eq SDL_ArrayOrder =>
(SDL_ArrayOrder -> SDL_ArrayOrder -> Ordering)
-> (SDL_ArrayOrder -> SDL_ArrayOrder -> Bool)
-> (SDL_ArrayOrder -> SDL_ArrayOrder -> Bool)
-> (SDL_ArrayOrder -> SDL_ArrayOrder -> Bool)
-> (SDL_ArrayOrder -> SDL_ArrayOrder -> Bool)
-> (SDL_ArrayOrder -> SDL_ArrayOrder -> SDL_ArrayOrder)
-> (SDL_ArrayOrder -> SDL_ArrayOrder -> SDL_ArrayOrder)
-> Ord SDL_ArrayOrder
SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
SDL_ArrayOrder -> SDL_ArrayOrder -> Ordering
SDL_ArrayOrder -> SDL_ArrayOrder -> SDL_ArrayOrder
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_ArrayOrder -> SDL_ArrayOrder -> Ordering
compare :: SDL_ArrayOrder -> SDL_ArrayOrder -> Ordering
$c< :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
< :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
$c<= :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
<= :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
$c> :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
> :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
$c>= :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
>= :: SDL_ArrayOrder -> SDL_ArrayOrder -> Bool
$cmax :: SDL_ArrayOrder -> SDL_ArrayOrder -> SDL_ArrayOrder
max :: SDL_ArrayOrder -> SDL_ArrayOrder -> SDL_ArrayOrder
$cmin :: SDL_ArrayOrder -> SDL_ArrayOrder -> SDL_ArrayOrder
min :: SDL_ArrayOrder -> SDL_ArrayOrder -> SDL_ArrayOrder
Ord)
  deriving newtype (FFIType SDL_ArrayOrder -> SDL_ArrayOrder
SDL_ArrayOrder -> FFIType SDL_ArrayOrder
(SDL_ArrayOrder -> FFIType SDL_ArrayOrder)
-> (FFIType SDL_ArrayOrder -> SDL_ArrayOrder)
-> HasFFIType SDL_ArrayOrder
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_ArrayOrder -> FFIType SDL_ArrayOrder
toFFIType :: SDL_ArrayOrder -> FFIType SDL_ArrayOrder
$cfromFFIType :: FFIType SDL_ArrayOrder -> SDL_ArrayOrder
fromFFIType :: FFIType SDL_ArrayOrder -> SDL_ArrayOrder
BG.HasFFIType)

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

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

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

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

deriving via Marshal.EquivStorable SDL_ArrayOrder instance BG.Storable SDL_ArrayOrder

deriving via BG.CUInt instance BG.Prim SDL_ArrayOrder

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

  toCEnum :: CEnumZ SDL_ArrayOrder -> SDL_ArrayOrder
toCEnum = CUInt -> SDL_ArrayOrder
CEnumZ SDL_ArrayOrder -> SDL_ArrayOrder
SDL_ArrayOrder

  fromCEnum :: SDL_ArrayOrder -> CEnumZ SDL_ArrayOrder
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_ArrayOrder -> DeclaredValues SDL_ArrayOrder
declaredValues =
    \proxy SDL_ArrayOrder
_ ->
      [(CEnumZ SDL_ArrayOrder, NonEmpty String)]
-> DeclaredValues SDL_ArrayOrder
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_ArrayOrder
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_ARRAYORDER_NONE")
        , (CUInt
CEnumZ SDL_ArrayOrder
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_ARRAYORDER_RGB")
        , (CUInt
CEnumZ SDL_ArrayOrder
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_ARRAYORDER_RGBA")
        , (CUInt
CEnumZ SDL_ArrayOrder
3, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_ARRAYORDER_ARGB")
        , (CUInt
CEnumZ SDL_ArrayOrder
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_ARRAYORDER_BGR")
        , (CUInt
CEnumZ SDL_ArrayOrder
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_ARRAYORDER_BGRA")
        , (CUInt
CEnumZ SDL_ArrayOrder
6, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_ARRAYORDER_ABGR")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_ArrayOrder where
  minDeclaredValue :: SDL_ArrayOrder
minDeclaredValue = SDL_ArrayOrder
SDL_ARRAYORDER_NONE

  maxDeclaredValue :: SDL_ArrayOrder
maxDeclaredValue = SDL_ArrayOrder
SDL_ARRAYORDER_ABGR

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_ARRAYORDER_NONE@, defined at @SDL3\/SDL_pixels.h 189:5@
pattern SDL_ARRAYORDER_NONE :: SDL_ArrayOrder
pattern $mSDL_ARRAYORDER_NONE :: forall {r}. SDL_ArrayOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_ARRAYORDER_NONE :: SDL_ArrayOrder
SDL_ARRAYORDER_NONE = SDL_ArrayOrder 0

-- | [C declaration]: @SDL_ARRAYORDER_RGB@, defined at @SDL3\/SDL_pixels.h 190:5@
pattern SDL_ARRAYORDER_RGB :: SDL_ArrayOrder
pattern $mSDL_ARRAYORDER_RGB :: forall {r}. SDL_ArrayOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_ARRAYORDER_RGB :: SDL_ArrayOrder
SDL_ARRAYORDER_RGB = SDL_ArrayOrder 1

-- | [C declaration]: @SDL_ARRAYORDER_RGBA@, defined at @SDL3\/SDL_pixels.h 191:5@
pattern SDL_ARRAYORDER_RGBA :: SDL_ArrayOrder
pattern $mSDL_ARRAYORDER_RGBA :: forall {r}. SDL_ArrayOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_ARRAYORDER_RGBA :: SDL_ArrayOrder
SDL_ARRAYORDER_RGBA = SDL_ArrayOrder 2

-- | [C declaration]: @SDL_ARRAYORDER_ARGB@, defined at @SDL3\/SDL_pixels.h 192:5@
pattern SDL_ARRAYORDER_ARGB :: SDL_ArrayOrder
pattern $mSDL_ARRAYORDER_ARGB :: forall {r}. SDL_ArrayOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_ARRAYORDER_ARGB :: SDL_ArrayOrder
SDL_ARRAYORDER_ARGB = SDL_ArrayOrder 3

-- | [C declaration]: @SDL_ARRAYORDER_BGR@, defined at @SDL3\/SDL_pixels.h 193:5@
pattern SDL_ARRAYORDER_BGR :: SDL_ArrayOrder
pattern $mSDL_ARRAYORDER_BGR :: forall {r}. SDL_ArrayOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_ARRAYORDER_BGR :: SDL_ArrayOrder
SDL_ARRAYORDER_BGR = SDL_ArrayOrder 4

-- | [C declaration]: @SDL_ARRAYORDER_BGRA@, defined at @SDL3\/SDL_pixels.h 194:5@
pattern SDL_ARRAYORDER_BGRA :: SDL_ArrayOrder
pattern $mSDL_ARRAYORDER_BGRA :: forall {r}. SDL_ArrayOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_ARRAYORDER_BGRA :: SDL_ArrayOrder
SDL_ARRAYORDER_BGRA = SDL_ArrayOrder 5

-- | [C declaration]: @SDL_ARRAYORDER_ABGR@, defined at @SDL3\/SDL_pixels.h 195:5@
pattern SDL_ARRAYORDER_ABGR :: SDL_ArrayOrder
pattern $mSDL_ARRAYORDER_ABGR :: forall {r}. SDL_ArrayOrder -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_ARRAYORDER_ABGR :: SDL_ArrayOrder
SDL_ARRAYORDER_ABGR = SDL_ArrayOrder 6

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

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

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

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

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

deriving via Marshal.EquivStorable SDL_PackedLayout instance BG.Storable SDL_PackedLayout

deriving via BG.CUInt instance BG.Prim SDL_PackedLayout

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

  toCEnum :: CEnumZ SDL_PackedLayout -> SDL_PackedLayout
toCEnum = CUInt -> SDL_PackedLayout
CEnumZ SDL_PackedLayout -> SDL_PackedLayout
SDL_PackedLayout

  fromCEnum :: SDL_PackedLayout -> CEnumZ SDL_PackedLayout
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_PackedLayout -> DeclaredValues SDL_PackedLayout
declaredValues =
    \proxy SDL_PackedLayout
_ ->
      [(CEnumZ SDL_PackedLayout, NonEmpty String)]
-> DeclaredValues SDL_PackedLayout
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_PackedLayout
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_NONE")
        , (CUInt
CEnumZ SDL_PackedLayout
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_332")
        , (CUInt
CEnumZ SDL_PackedLayout
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_4444")
        , (CUInt
CEnumZ SDL_PackedLayout
3, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_1555")
        , (CUInt
CEnumZ SDL_PackedLayout
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_5551")
        , (CUInt
CEnumZ SDL_PackedLayout
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_565")
        , (CUInt
CEnumZ SDL_PackedLayout
6, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_8888")
        , (CUInt
CEnumZ SDL_PackedLayout
7, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_2101010")
        , (CUInt
CEnumZ SDL_PackedLayout
8, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PACKEDLAYOUT_1010102")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_PackedLayout where
  minDeclaredValue :: SDL_PackedLayout
minDeclaredValue = SDL_PackedLayout
SDL_PACKEDLAYOUT_NONE

  maxDeclaredValue :: SDL_PackedLayout
maxDeclaredValue = SDL_PackedLayout
SDL_PACKEDLAYOUT_1010102

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_PACKEDLAYOUT_NONE@, defined at @SDL3\/SDL_pixels.h 205:5@
pattern SDL_PACKEDLAYOUT_NONE :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_NONE :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_NONE :: SDL_PackedLayout
SDL_PACKEDLAYOUT_NONE = SDL_PackedLayout 0

-- | [C declaration]: @SDL_PACKEDLAYOUT_332@, defined at @SDL3\/SDL_pixels.h 206:5@
pattern SDL_PACKEDLAYOUT_332 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_332 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_332 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_332 = SDL_PackedLayout 1

-- | [C declaration]: @SDL_PACKEDLAYOUT_4444@, defined at @SDL3\/SDL_pixels.h 207:5@
pattern SDL_PACKEDLAYOUT_4444 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_4444 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_4444 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_4444 = SDL_PackedLayout 2

-- | [C declaration]: @SDL_PACKEDLAYOUT_1555@, defined at @SDL3\/SDL_pixels.h 208:5@
pattern SDL_PACKEDLAYOUT_1555 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_1555 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_1555 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_1555 = SDL_PackedLayout 3

-- | [C declaration]: @SDL_PACKEDLAYOUT_5551@, defined at @SDL3\/SDL_pixels.h 209:5@
pattern SDL_PACKEDLAYOUT_5551 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_5551 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_5551 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_5551 = SDL_PackedLayout 4

-- | [C declaration]: @SDL_PACKEDLAYOUT_565@, defined at @SDL3\/SDL_pixels.h 210:5@
pattern SDL_PACKEDLAYOUT_565 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_565 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_565 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_565 = SDL_PackedLayout 5

-- | [C declaration]: @SDL_PACKEDLAYOUT_8888@, defined at @SDL3\/SDL_pixels.h 211:5@
pattern SDL_PACKEDLAYOUT_8888 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_8888 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_8888 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_8888 = SDL_PackedLayout 6

-- | [C declaration]: @SDL_PACKEDLAYOUT_2101010@, defined at @SDL3\/SDL_pixels.h 212:5@
pattern SDL_PACKEDLAYOUT_2101010 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_2101010 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_2101010 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_2101010 = SDL_PackedLayout 7

-- | [C declaration]: @SDL_PACKEDLAYOUT_1010102@, defined at @SDL3\/SDL_pixels.h 213:5@
pattern SDL_PACKEDLAYOUT_1010102 :: SDL_PackedLayout
pattern $mSDL_PACKEDLAYOUT_1010102 :: forall {r}. SDL_PackedLayout -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PACKEDLAYOUT_1010102 :: SDL_PackedLayout
SDL_PACKEDLAYOUT_1010102 = SDL_PackedLayout 8

-- | A macro for defining custom non-FourCC pixel formats.
--
--     For example, defining SDL_PIXELFORMAT_RGBA8888 looks like this:
--
--     @
--     SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_8888, 32, 4)
--     @
--
--     [@type@]: the type of the new format, probably a 'SDL_PixelType' value.
--
--     [@order@]: the order of the new format, probably a 'SDL_BitmapOrder', 'SDL_PackedOrder', or 'SDL_ArrayOrder' value.
--
--     [@layout@]: the layout of the new format, probably an 'SDL_PackedLayout' value or zero.
--
--     [@bits@]: the number of bits per pixel of the new format.
--
--     [@bytes@]: the number of bytes per pixel of the new format.
--
--     [Returns]: a format value in the style of 'SDL_PixelFormat'.
--
--     [Thread safety]: It is safe to call this macro from any thread.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_DEFINE_PIXELFORMAT@, defined at @SDL3\/SDL_pixels.h 259:9@
sDL_DEFINE_PIXELFORMAT
  :: forall a10 a21 a32 a43 a54
   . ( C.Expr.HostPlatform.Bitwise
         (C.Expr.HostPlatform.BitsRes BG.CInt (C.Expr.HostPlatform.ShiftRes a10))
         (C.Expr.HostPlatform.ShiftRes a21)
     )
  => ( C.Expr.HostPlatform.Bitwise
         ( C.Expr.HostPlatform.BitsRes
             (C.Expr.HostPlatform.BitsRes BG.CInt (C.Expr.HostPlatform.ShiftRes a10))
             (C.Expr.HostPlatform.ShiftRes a21)
         )
         (C.Expr.HostPlatform.ShiftRes a32)
     )
  => ( C.Expr.HostPlatform.Bitwise
         ( C.Expr.HostPlatform.BitsRes
             ( C.Expr.HostPlatform.BitsRes
                 (C.Expr.HostPlatform.BitsRes BG.CInt (C.Expr.HostPlatform.ShiftRes a10))
                 (C.Expr.HostPlatform.ShiftRes a21)
             )
             (C.Expr.HostPlatform.ShiftRes a32)
         )
         (C.Expr.HostPlatform.ShiftRes a43)
     )
  => ( C.Expr.HostPlatform.Bitwise
         ( C.Expr.HostPlatform.BitsRes
             ( C.Expr.HostPlatform.BitsRes
                 ( C.Expr.HostPlatform.BitsRes
                     (C.Expr.HostPlatform.BitsRes BG.CInt (C.Expr.HostPlatform.ShiftRes a10))
                     (C.Expr.HostPlatform.ShiftRes a21)
                 )
                 (C.Expr.HostPlatform.ShiftRes a32)
             )
             (C.Expr.HostPlatform.ShiftRes a43)
         )
         (C.Expr.HostPlatform.ShiftRes a54)
     )
  => (C.Expr.HostPlatform.Bitwise BG.CInt (C.Expr.HostPlatform.ShiftRes a10))
  => (C.Expr.HostPlatform.Shift a54 BG.CInt)
  => (C.Expr.HostPlatform.Shift a43 BG.CInt)
  => (C.Expr.HostPlatform.Shift a32 BG.CInt)
  => (C.Expr.HostPlatform.Shift a21 BG.CInt)
  => (C.Expr.HostPlatform.Shift a10 BG.CInt)
  => a10
  -> a21
  -> a32
  -> a43
  -> a54
  -> C.Expr.HostPlatform.BitsRes
       ( C.Expr.HostPlatform.BitsRes
           ( C.Expr.HostPlatform.BitsRes
               ( C.Expr.HostPlatform.BitsRes
                   (C.Expr.HostPlatform.BitsRes BG.CInt (C.Expr.HostPlatform.ShiftRes a10))
                   (C.Expr.HostPlatform.ShiftRes a21)
               )
               (C.Expr.HostPlatform.ShiftRes a32)
           )
           (C.Expr.HostPlatform.ShiftRes a43)
       )
       (C.Expr.HostPlatform.ShiftRes a54)
sDL_DEFINE_PIXELFORMAT :: forall a10 a21 a32 a43 a54.
(Bitwise (BitsRes CInt (ShiftRes a10)) (ShiftRes a21),
 Bitwise
   (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
   (ShiftRes a32),
 Bitwise
   (BitsRes
      (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
      (ShiftRes a32))
   (ShiftRes a43),
 Bitwise
   (BitsRes
      (BitsRes
         (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
         (ShiftRes a32))
      (ShiftRes a43))
   (ShiftRes a54),
 Bitwise CInt (ShiftRes a10), Shift a54 CInt, Shift a43 CInt,
 Shift a32 CInt, Shift a21 CInt, Shift a10 CInt) =>
a10
-> a21
-> a32
-> a43
-> a54
-> BitsRes
     (BitsRes
        (BitsRes
           (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
           (ShiftRes a32))
        (ShiftRes a43))
     (ShiftRes a54)
sDL_DEFINE_PIXELFORMAT =
  \a10
type'0 ->
    \a21
order1 ->
      \a32
layout2 ->
        \a43
bits3 ->
          \a54
bytes4 ->
            BitsRes
  (BitsRes
     (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
     (ShiftRes a32))
  (ShiftRes a43)
-> ShiftRes a54
-> BitsRes
     (BitsRes
        (BitsRes
           (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
           (ShiftRes a32))
        (ShiftRes a43))
     (ShiftRes a54)
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..|.)
              ( BitsRes
  (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
  (ShiftRes a32)
-> ShiftRes a43
-> BitsRes
     (BitsRes
        (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
        (ShiftRes a32))
     (ShiftRes a43)
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..|.)
                  ( BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21)
-> ShiftRes a32
-> BitsRes
     (BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21))
     (ShiftRes a32)
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..|.)
                      ( BitsRes CInt (ShiftRes a10)
-> ShiftRes a21
-> BitsRes (BitsRes CInt (ShiftRes a10)) (ShiftRes a21)
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..|.)
                          ( CInt -> ShiftRes a10 -> BitsRes CInt (ShiftRes a10)
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..|.)
                              (CInt -> CInt -> ShiftRes CInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CInt
1 :: BG.CInt) (CInt
28 :: BG.CInt))
                              (a10 -> CInt -> ShiftRes a10
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) a10
type'0 (CInt
24 :: BG.CInt))
                          )
                          (a21 -> CInt -> ShiftRes a21
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) a21
order1 (CInt
20 :: BG.CInt))
                      )
                      (a32 -> CInt -> ShiftRes a32
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) a32
layout2 (CInt
16 :: BG.CInt))
                  )
                  (a43 -> CInt -> ShiftRes a43
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) a43
bits3 (CInt
8 :: BG.CInt))
              )
              (a54 -> CInt -> ShiftRes a54
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) a54
bytes4 (CInt
0 :: BG.CInt))

-- | A macro to retrieve the flags of an 'SDL_PixelFormat'.
--
--     This macro is generally not needed directly by an app, which should use specific tests, like SDL_ISPIXELFORMAT_FOURCC, instead.
--
--     [@format@]: an 'SDL_PixelFormat' to check.
--
--     [Returns]: the flags of @format@.
--
--     [Thread safety]: It is safe to call this macro from any thread.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_PIXELFLAG@, defined at @SDL3\/SDL_pixels.h 276:9@
sDL_PIXELFLAG
  :: forall a0
   . (C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) BG.CInt)
  => (C.Expr.HostPlatform.Shift a0 BG.CInt)
  => a0 -> C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) BG.CInt
sDL_PIXELFLAG :: forall a0.
(Bitwise (ShiftRes a0) CInt, Shift a0 CInt) =>
a0 -> BitsRes (ShiftRes a0) CInt
sDL_PIXELFLAG =
  \a0
format0 ->
    ShiftRes a0 -> CInt -> BitsRes (ShiftRes a0) CInt
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..&.) (a0 -> CInt -> ShiftRes a0
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.>>) a0
format0 (CInt
28 :: BG.CInt)) (CInt
15 :: BG.CInt)

-- | A macro to retrieve the type of an 'SDL_PixelFormat'.
--
--     This is usually a value from the 'SDL_PixelType' enumeration.
--
--     [@format@]: an 'SDL_PixelFormat' to check.
--
--     [Returns]: the type of @format@.
--
--     [Thread safety]: It is safe to call this macro from any thread.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_PIXELTYPE@, defined at @SDL3\/SDL_pixels.h 290:9@
sDL_PIXELTYPE
  :: forall a0
   . (C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) BG.CInt)
  => (C.Expr.HostPlatform.Shift a0 BG.CInt)
  => a0 -> C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) BG.CInt
sDL_PIXELTYPE :: forall a0.
(Bitwise (ShiftRes a0) CInt, Shift a0 CInt) =>
a0 -> BitsRes (ShiftRes a0) CInt
sDL_PIXELTYPE =
  \a0
format0 ->
    ShiftRes a0 -> CInt -> BitsRes (ShiftRes a0) CInt
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..&.) (a0 -> CInt -> ShiftRes a0
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.>>) a0
format0 (CInt
24 :: BG.CInt)) (CInt
15 :: BG.CInt)

-- | A macro to retrieve the order of an 'SDL_PixelFormat'.
--
--     This is usually a value from the 'SDL_BitmapOrder', 'SDL_PackedOrder', or 'SDL_ArrayOrder' enumerations, depending on the format type.
--
--     [@format@]: an 'SDL_PixelFormat' to check.
--
--     [Returns]: the order of @format@.
--
--     [Thread safety]: It is safe to call this macro from any thread.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_PIXELORDER@, defined at @SDL3\/SDL_pixels.h 305:9@
sDL_PIXELORDER
  :: forall a0
   . (C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) BG.CInt)
  => (C.Expr.HostPlatform.Shift a0 BG.CInt)
  => a0 -> C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) BG.CInt
sDL_PIXELORDER :: forall a0.
(Bitwise (ShiftRes a0) CInt, Shift a0 CInt) =>
a0 -> BitsRes (ShiftRes a0) CInt
sDL_PIXELORDER =
  \a0
format0 ->
    ShiftRes a0 -> CInt -> BitsRes (ShiftRes a0) CInt
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..&.) (a0 -> CInt -> ShiftRes a0
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.>>) a0
format0 (CInt
20 :: BG.CInt)) (CInt
15 :: BG.CInt)

-- | A macro to retrieve the layout of an 'SDL_PixelFormat'.
--
--     This is usually a value from the 'SDL_PackedLayout' enumeration, or zero if a layout doesn\'t make sense for the format type.
--
--     [@format@]: an 'SDL_PixelFormat' to check.
--
--     [Returns]: the layout of @format@.
--
--     [Thread safety]: It is safe to call this macro from any thread.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_PIXELLAYOUT@, defined at @SDL3\/SDL_pixels.h 320:9@
sDL_PIXELLAYOUT
  :: forall a0
   . (C.Expr.HostPlatform.Bitwise (C.Expr.HostPlatform.ShiftRes a0) BG.CInt)
  => (C.Expr.HostPlatform.Shift a0 BG.CInt)
  => a0 -> C.Expr.HostPlatform.BitsRes (C.Expr.HostPlatform.ShiftRes a0) BG.CInt
sDL_PIXELLAYOUT :: forall a0.
(Bitwise (ShiftRes a0) CInt, Shift a0 CInt) =>
a0 -> BitsRes (ShiftRes a0) CInt
sDL_PIXELLAYOUT =
  \a0
format0 ->
    ShiftRes a0 -> CInt -> BitsRes (ShiftRes a0) CInt
forall a b. Bitwise a b => a -> b -> BitsRes a b
(C.Expr.HostPlatform..&.) (a0 -> CInt -> ShiftRes a0
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.>>) a0
format0 (CInt
16 :: BG.CInt)) (CInt
15 :: BG.CInt)

-- | Pixel format.
--
--     SDL\'s pixel formats have the following naming convention:
--
--     * Names with a list of components and a single bit count, such as RGB24 and ABGR32, define a platform-independent encoding into bytes in the order specified. For example, in RGB24 data, each pixel is encoded in 3 bytes (red, green, blue) in that order, and in ABGR32 data, each pixel is encoded in 4 bytes (alpha, blue, green, red) in that order. Use these names if the property of a format that is important to you is the order of the bytes in memory or on disk.
--
--     * Names with a bit count per component, such as ARGB8888 and XRGB1555, are \"packed\" into an appropriately-sized integer in the platform\'s native endianness. For example, ARGB8888 is a sequence of 32-bit integers; in each integer, the most significant bits are alpha, and the least significant bits are blue. On a little-endian CPU such as x86, the least significant bits of each integer are arranged first in memory, but on a big-endian CPU such as s390x, the most significant bits are arranged first. Use these names if the property of a format that is important to you is the meaning of each bit position within a native-endianness integer.
--
--     * In indexed formats such as INDEX4LSB, each pixel is represented by encoding an index into the palette into the indicated number of bits, with multiple pixels packed into each byte if appropriate. In LSB formats, the first (leftmost) pixel is stored in the least-significant bits of the byte; in MSB formats, it\'s stored in the most-significant bits. INDEX8 does not need LSB\/MSB variants, because each pixel exactly fills one byte.
--
--     The 32-bit byte-array encodings such as RGBA32 are aliases for the appropriate 8888 encoding for the current platform. For example, RGBA32 is an alias for ABGR8888 on little-endian CPUs like x86, or an alias for RGBA8888 on big-endian CPUs.
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_PixelFormat@, defined at @SDL3\/SDL_pixels.h 548:14@
newtype SDL_PixelFormat = SDL_PixelFormat
  { SDL_PixelFormat -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_PixelFormat -> Rep SDL_PixelFormat x)
-> (forall x. Rep SDL_PixelFormat x -> SDL_PixelFormat)
-> Generic SDL_PixelFormat
forall x. Rep SDL_PixelFormat x -> SDL_PixelFormat
forall x. SDL_PixelFormat -> Rep SDL_PixelFormat x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_PixelFormat -> Rep SDL_PixelFormat x
from :: forall x. SDL_PixelFormat -> Rep SDL_PixelFormat x
$cto :: forall x. Rep SDL_PixelFormat x -> SDL_PixelFormat
to :: forall x. Rep SDL_PixelFormat x -> SDL_PixelFormat
BG.Generic, SDL_PixelFormat -> SDL_PixelFormat -> Bool
(SDL_PixelFormat -> SDL_PixelFormat -> Bool)
-> (SDL_PixelFormat -> SDL_PixelFormat -> Bool)
-> Eq SDL_PixelFormat
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
== :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
$c/= :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
/= :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
Eq, Eq SDL_PixelFormat
Eq SDL_PixelFormat =>
(SDL_PixelFormat -> SDL_PixelFormat -> Ordering)
-> (SDL_PixelFormat -> SDL_PixelFormat -> Bool)
-> (SDL_PixelFormat -> SDL_PixelFormat -> Bool)
-> (SDL_PixelFormat -> SDL_PixelFormat -> Bool)
-> (SDL_PixelFormat -> SDL_PixelFormat -> Bool)
-> (SDL_PixelFormat -> SDL_PixelFormat -> SDL_PixelFormat)
-> (SDL_PixelFormat -> SDL_PixelFormat -> SDL_PixelFormat)
-> Ord SDL_PixelFormat
SDL_PixelFormat -> SDL_PixelFormat -> Bool
SDL_PixelFormat -> SDL_PixelFormat -> Ordering
SDL_PixelFormat -> SDL_PixelFormat -> SDL_PixelFormat
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_PixelFormat -> SDL_PixelFormat -> Ordering
compare :: SDL_PixelFormat -> SDL_PixelFormat -> Ordering
$c< :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
< :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
$c<= :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
<= :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
$c> :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
> :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
$c>= :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
>= :: SDL_PixelFormat -> SDL_PixelFormat -> Bool
$cmax :: SDL_PixelFormat -> SDL_PixelFormat -> SDL_PixelFormat
max :: SDL_PixelFormat -> SDL_PixelFormat -> SDL_PixelFormat
$cmin :: SDL_PixelFormat -> SDL_PixelFormat -> SDL_PixelFormat
min :: SDL_PixelFormat -> SDL_PixelFormat -> SDL_PixelFormat
Ord)
  deriving newtype (FFIType SDL_PixelFormat -> SDL_PixelFormat
SDL_PixelFormat -> FFIType SDL_PixelFormat
(SDL_PixelFormat -> FFIType SDL_PixelFormat)
-> (FFIType SDL_PixelFormat -> SDL_PixelFormat)
-> HasFFIType SDL_PixelFormat
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_PixelFormat -> FFIType SDL_PixelFormat
toFFIType :: SDL_PixelFormat -> FFIType SDL_PixelFormat
$cfromFFIType :: FFIType SDL_PixelFormat -> SDL_PixelFormat
fromFFIType :: FFIType SDL_PixelFormat -> SDL_PixelFormat
BG.HasFFIType)

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

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

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

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

deriving via Marshal.EquivStorable SDL_PixelFormat instance BG.Storable SDL_PixelFormat

deriving via BG.CUInt instance BG.Prim SDL_PixelFormat

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

  toCEnum :: CEnumZ SDL_PixelFormat -> SDL_PixelFormat
toCEnum = CUInt -> SDL_PixelFormat
CEnumZ SDL_PixelFormat -> SDL_PixelFormat
SDL_PixelFormat

  fromCEnum :: SDL_PixelFormat -> CEnumZ SDL_PixelFormat
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_PixelFormat -> DeclaredValues SDL_PixelFormat
declaredValues =
    \proxy SDL_PixelFormat
_ ->
      [(CEnumZ SDL_PixelFormat, NonEmpty String)]
-> DeclaredValues SDL_PixelFormat
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_PixelFormat
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_UNKNOWN")
        , (CUInt
CEnumZ SDL_PixelFormat
286261504, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_INDEX1LSB")
        , (CUInt
CEnumZ SDL_PixelFormat
287310080, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_INDEX1MSB")
        , (CUInt
CEnumZ SDL_PixelFormat
303039488, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_INDEX4LSB")
        , (CUInt
CEnumZ SDL_PixelFormat
304088064, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_INDEX4MSB")
        , (CUInt
CEnumZ SDL_PixelFormat
318769153, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_INDEX8")
        , (CUInt
CEnumZ SDL_PixelFormat
336660481, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGB332")
        , (CUInt
CEnumZ SDL_PixelFormat
353504258, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_XRGB4444")
        , (CUInt
CEnumZ SDL_PixelFormat
353570562, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_XRGB1555")
        , (CUInt
CEnumZ SDL_PixelFormat
353701890, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGB565")
        , (CUInt
CEnumZ SDL_PixelFormat
355602434, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ARGB4444")
        , (CUInt
CEnumZ SDL_PixelFormat
355667970, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ARGB1555")
        , (CUInt
CEnumZ SDL_PixelFormat
356651010, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGBA4444")
        , (CUInt
CEnumZ SDL_PixelFormat
356782082, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGBA5551")
        , (CUInt
CEnumZ SDL_PixelFormat
357698562, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_XBGR4444")
        , (CUInt
CEnumZ SDL_PixelFormat
357764866, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_XBGR1555")
        , (CUInt
CEnumZ SDL_PixelFormat
357896194, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGR565")
        , (CUInt
CEnumZ SDL_PixelFormat
359796738, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ABGR4444")
        , (CUInt
CEnumZ SDL_PixelFormat
359862274, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ABGR1555")
        , (CUInt
CEnumZ SDL_PixelFormat
360845314, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGRA4444")
        , (CUInt
CEnumZ SDL_PixelFormat
360976386, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGRA5551")
        , (CUInt
CEnumZ SDL_PixelFormat
370546692, (String
"SDL_PIXELFORMAT_XRGB8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_BGRX32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
370614276, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_XRGB2101010")
        , (CUInt
CEnumZ SDL_PixelFormat
371595268, (String
"SDL_PIXELFORMAT_RGBX8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_XBGR32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
372645892, (String
"SDL_PIXELFORMAT_ARGB8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_BGRA32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
372711428, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ARGB2101010")
        , (CUInt
CEnumZ SDL_PixelFormat
373694468, (String
"SDL_PIXELFORMAT_RGBA8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_ABGR32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
374740996, (String
"SDL_PIXELFORMAT_XBGR8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_RGBX32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
374808580, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_XBGR2101010")
        , (CUInt
CEnumZ SDL_PixelFormat
375789572, (String
"SDL_PIXELFORMAT_BGRX8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_XRGB32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
376840196, (String
"SDL_PIXELFORMAT_ABGR8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_RGBA32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
376905732, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ABGR2101010")
        , (CUInt
CEnumZ SDL_PixelFormat
377888772, (String
"SDL_PIXELFORMAT_BGRA8888" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_PIXELFORMAT_ARGB32"]))
        , (CUInt
CEnumZ SDL_PixelFormat
386930691, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGB24")
        , (CUInt
CEnumZ SDL_PixelFormat
390076419, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGR24")
        , (CUInt
CEnumZ SDL_PixelFormat
403714054, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGB48")
        , (CUInt
CEnumZ SDL_PixelFormat
404766728, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGBA64")
        , (CUInt
CEnumZ SDL_PixelFormat
405815304, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ARGB64")
        , (CUInt
CEnumZ SDL_PixelFormat
406859782, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGR48")
        , (CUInt
CEnumZ SDL_PixelFormat
407912456, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGRA64")
        , (CUInt
CEnumZ SDL_PixelFormat
408961032, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ABGR64")
        , (CUInt
CEnumZ SDL_PixelFormat
437268486, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGB48_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
438321160, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGBA64_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
439369736, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ARGB64_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
440414214, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGR48_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
441466888, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGRA64_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
442515464, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ABGR64_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
454057996, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGB96_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
455114768, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_RGBA128_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
456163344, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ARGB128_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
457203724, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGR96_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
458260496, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_BGRA128_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
459309072, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_ABGR128_FLOAT")
        , (CUInt
CEnumZ SDL_PixelFormat
470811136, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_INDEX2LSB")
        , (CUInt
CEnumZ SDL_PixelFormat
471859712, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_INDEX2MSB")
        , (CUInt
CEnumZ SDL_PixelFormat
542328143, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_EXTERNAL_OES")
        , (CUInt
CEnumZ SDL_PixelFormat
808530000, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_P010")
        , (CUInt
CEnumZ SDL_PixelFormat
825382478, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_NV21")
        , (CUInt
CEnumZ SDL_PixelFormat
842094158, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_NV12")
        , (CUInt
CEnumZ SDL_PixelFormat
842094169, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_YV12")
        , (CUInt
CEnumZ SDL_PixelFormat
844715353, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_YUY2")
        , (CUInt
CEnumZ SDL_PixelFormat
1196444237, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_MJPG")
        , (CUInt
CEnumZ SDL_PixelFormat
1431918169, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_YVYU")
        , (CUInt
CEnumZ SDL_PixelFormat
1448433993, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_IYUV")
        , (CUInt
CEnumZ SDL_PixelFormat
1498831189, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_PIXELFORMAT_UYVY")
        ]

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

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

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_PIXELFORMAT_UNKNOWN@, defined at @SDL3\/SDL_pixels.h 550:5@
pattern SDL_PIXELFORMAT_UNKNOWN :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_UNKNOWN :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_UNKNOWN :: SDL_PixelFormat
SDL_PIXELFORMAT_UNKNOWN = SDL_PixelFormat 0

-- | [C declaration]: @SDL_PIXELFORMAT_INDEX1LSB@, defined at @SDL3\/SDL_pixels.h 551:5@
pattern SDL_PIXELFORMAT_INDEX1LSB :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_INDEX1LSB :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_INDEX1LSB :: SDL_PixelFormat
SDL_PIXELFORMAT_INDEX1LSB = SDL_PixelFormat 286261504

-- | [C declaration]: @SDL_PIXELFORMAT_INDEX1MSB@, defined at @SDL3\/SDL_pixels.h 553:5@
pattern SDL_PIXELFORMAT_INDEX1MSB :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_INDEX1MSB :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_INDEX1MSB :: SDL_PixelFormat
SDL_PIXELFORMAT_INDEX1MSB = SDL_PixelFormat 287310080

-- | [C declaration]: @SDL_PIXELFORMAT_INDEX2LSB@, defined at @SDL3\/SDL_pixels.h 555:5@
pattern SDL_PIXELFORMAT_INDEX2LSB :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_INDEX2LSB :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_INDEX2LSB :: SDL_PixelFormat
SDL_PIXELFORMAT_INDEX2LSB = SDL_PixelFormat 470811136

-- | [C declaration]: @SDL_PIXELFORMAT_INDEX2MSB@, defined at @SDL3\/SDL_pixels.h 557:5@
pattern SDL_PIXELFORMAT_INDEX2MSB :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_INDEX2MSB :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_INDEX2MSB :: SDL_PixelFormat
SDL_PIXELFORMAT_INDEX2MSB = SDL_PixelFormat 471859712

-- | [C declaration]: @SDL_PIXELFORMAT_INDEX4LSB@, defined at @SDL3\/SDL_pixels.h 559:5@
pattern SDL_PIXELFORMAT_INDEX4LSB :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_INDEX4LSB :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_INDEX4LSB :: SDL_PixelFormat
SDL_PIXELFORMAT_INDEX4LSB = SDL_PixelFormat 303039488

-- | [C declaration]: @SDL_PIXELFORMAT_INDEX4MSB@, defined at @SDL3\/SDL_pixels.h 561:5@
pattern SDL_PIXELFORMAT_INDEX4MSB :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_INDEX4MSB :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_INDEX4MSB :: SDL_PixelFormat
SDL_PIXELFORMAT_INDEX4MSB = SDL_PixelFormat 304088064

-- | [C declaration]: @SDL_PIXELFORMAT_INDEX8@, defined at @SDL3\/SDL_pixels.h 563:5@
pattern SDL_PIXELFORMAT_INDEX8 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_INDEX8 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_INDEX8 :: SDL_PixelFormat
SDL_PIXELFORMAT_INDEX8 = SDL_PixelFormat 318769153

-- | [C declaration]: @SDL_PIXELFORMAT_RGB332@, defined at @SDL3\/SDL_pixels.h 565:5@
pattern SDL_PIXELFORMAT_RGB332 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGB332 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGB332 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGB332 = SDL_PixelFormat 336660481

-- | [C declaration]: @SDL_PIXELFORMAT_XRGB4444@, defined at @SDL3\/SDL_pixels.h 567:5@
pattern SDL_PIXELFORMAT_XRGB4444 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XRGB4444 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XRGB4444 :: SDL_PixelFormat
SDL_PIXELFORMAT_XRGB4444 = SDL_PixelFormat 353504258

-- | [C declaration]: @SDL_PIXELFORMAT_XBGR4444@, defined at @SDL3\/SDL_pixels.h 569:5@
pattern SDL_PIXELFORMAT_XBGR4444 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XBGR4444 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XBGR4444 :: SDL_PixelFormat
SDL_PIXELFORMAT_XBGR4444 = SDL_PixelFormat 357698562

-- | [C declaration]: @SDL_PIXELFORMAT_XRGB1555@, defined at @SDL3\/SDL_pixels.h 571:5@
pattern SDL_PIXELFORMAT_XRGB1555 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XRGB1555 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XRGB1555 :: SDL_PixelFormat
SDL_PIXELFORMAT_XRGB1555 = SDL_PixelFormat 353570562

-- | [C declaration]: @SDL_PIXELFORMAT_XBGR1555@, defined at @SDL3\/SDL_pixels.h 573:5@
pattern SDL_PIXELFORMAT_XBGR1555 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XBGR1555 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XBGR1555 :: SDL_PixelFormat
SDL_PIXELFORMAT_XBGR1555 = SDL_PixelFormat 357764866

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB4444@, defined at @SDL3\/SDL_pixels.h 575:5@
pattern SDL_PIXELFORMAT_ARGB4444 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB4444 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB4444 :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB4444 = SDL_PixelFormat 355602434

-- | [C declaration]: @SDL_PIXELFORMAT_RGBA4444@, defined at @SDL3\/SDL_pixels.h 577:5@
pattern SDL_PIXELFORMAT_RGBA4444 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBA4444 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBA4444 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBA4444 = SDL_PixelFormat 356651010

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR4444@, defined at @SDL3\/SDL_pixels.h 579:5@
pattern SDL_PIXELFORMAT_ABGR4444 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR4444 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR4444 :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR4444 = SDL_PixelFormat 359796738

-- | [C declaration]: @SDL_PIXELFORMAT_BGRA4444@, defined at @SDL3\/SDL_pixels.h 581:5@
pattern SDL_PIXELFORMAT_BGRA4444 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRA4444 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRA4444 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRA4444 = SDL_PixelFormat 360845314

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB1555@, defined at @SDL3\/SDL_pixels.h 583:5@
pattern SDL_PIXELFORMAT_ARGB1555 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB1555 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB1555 :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB1555 = SDL_PixelFormat 355667970

-- | [C declaration]: @SDL_PIXELFORMAT_RGBA5551@, defined at @SDL3\/SDL_pixels.h 585:5@
pattern SDL_PIXELFORMAT_RGBA5551 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBA5551 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBA5551 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBA5551 = SDL_PixelFormat 356782082

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR1555@, defined at @SDL3\/SDL_pixels.h 587:5@
pattern SDL_PIXELFORMAT_ABGR1555 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR1555 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR1555 :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR1555 = SDL_PixelFormat 359862274

-- | [C declaration]: @SDL_PIXELFORMAT_BGRA5551@, defined at @SDL3\/SDL_pixels.h 589:5@
pattern SDL_PIXELFORMAT_BGRA5551 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRA5551 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRA5551 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRA5551 = SDL_PixelFormat 360976386

-- | [C declaration]: @SDL_PIXELFORMAT_RGB565@, defined at @SDL3\/SDL_pixels.h 591:5@
pattern SDL_PIXELFORMAT_RGB565 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGB565 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGB565 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGB565 = SDL_PixelFormat 353701890

-- | [C declaration]: @SDL_PIXELFORMAT_BGR565@, defined at @SDL3\/SDL_pixels.h 593:5@
pattern SDL_PIXELFORMAT_BGR565 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGR565 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGR565 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGR565 = SDL_PixelFormat 357896194

-- | [C declaration]: @SDL_PIXELFORMAT_RGB24@, defined at @SDL3\/SDL_pixels.h 595:5@
pattern SDL_PIXELFORMAT_RGB24 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGB24 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGB24 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGB24 = SDL_PixelFormat 386930691

-- | [C declaration]: @SDL_PIXELFORMAT_BGR24@, defined at @SDL3\/SDL_pixels.h 597:5@
pattern SDL_PIXELFORMAT_BGR24 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGR24 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGR24 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGR24 = SDL_PixelFormat 390076419

-- | [C declaration]: @SDL_PIXELFORMAT_XRGB8888@, defined at @SDL3\/SDL_pixels.h 599:5@
pattern SDL_PIXELFORMAT_XRGB8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XRGB8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XRGB8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_XRGB8888 = SDL_PixelFormat 370546692

-- | [C declaration]: @SDL_PIXELFORMAT_RGBX8888@, defined at @SDL3\/SDL_pixels.h 601:5@
pattern SDL_PIXELFORMAT_RGBX8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBX8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBX8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBX8888 = SDL_PixelFormat 371595268

-- | [C declaration]: @SDL_PIXELFORMAT_XBGR8888@, defined at @SDL3\/SDL_pixels.h 603:5@
pattern SDL_PIXELFORMAT_XBGR8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XBGR8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XBGR8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_XBGR8888 = SDL_PixelFormat 374740996

-- | [C declaration]: @SDL_PIXELFORMAT_BGRX8888@, defined at @SDL3\/SDL_pixels.h 605:5@
pattern SDL_PIXELFORMAT_BGRX8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRX8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRX8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRX8888 = SDL_PixelFormat 375789572

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB8888@, defined at @SDL3\/SDL_pixels.h 607:5@
pattern SDL_PIXELFORMAT_ARGB8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB8888 = SDL_PixelFormat 372645892

-- | [C declaration]: @SDL_PIXELFORMAT_RGBA8888@, defined at @SDL3\/SDL_pixels.h 609:5@
pattern SDL_PIXELFORMAT_RGBA8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBA8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBA8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBA8888 = SDL_PixelFormat 373694468

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR8888@, defined at @SDL3\/SDL_pixels.h 611:5@
pattern SDL_PIXELFORMAT_ABGR8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR8888 = SDL_PixelFormat 376840196

-- | [C declaration]: @SDL_PIXELFORMAT_BGRA8888@, defined at @SDL3\/SDL_pixels.h 613:5@
pattern SDL_PIXELFORMAT_BGRA8888 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRA8888 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRA8888 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRA8888 = SDL_PixelFormat 377888772

-- | [C declaration]: @SDL_PIXELFORMAT_XRGB2101010@, defined at @SDL3\/SDL_pixels.h 615:5@
pattern SDL_PIXELFORMAT_XRGB2101010 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XRGB2101010 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XRGB2101010 :: SDL_PixelFormat
SDL_PIXELFORMAT_XRGB2101010 = SDL_PixelFormat 370614276

-- | [C declaration]: @SDL_PIXELFORMAT_XBGR2101010@, defined at @SDL3\/SDL_pixels.h 617:5@
pattern SDL_PIXELFORMAT_XBGR2101010 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XBGR2101010 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XBGR2101010 :: SDL_PixelFormat
SDL_PIXELFORMAT_XBGR2101010 = SDL_PixelFormat 374808580

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB2101010@, defined at @SDL3\/SDL_pixels.h 619:5@
pattern SDL_PIXELFORMAT_ARGB2101010 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB2101010 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB2101010 :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB2101010 = SDL_PixelFormat 372711428

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR2101010@, defined at @SDL3\/SDL_pixels.h 621:5@
pattern SDL_PIXELFORMAT_ABGR2101010 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR2101010 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR2101010 :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR2101010 = SDL_PixelFormat 376905732

-- | [C declaration]: @SDL_PIXELFORMAT_RGB48@, defined at @SDL3\/SDL_pixels.h 623:5@
pattern SDL_PIXELFORMAT_RGB48 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGB48 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGB48 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGB48 = SDL_PixelFormat 403714054

-- | [C declaration]: @SDL_PIXELFORMAT_BGR48@, defined at @SDL3\/SDL_pixels.h 625:5@
pattern SDL_PIXELFORMAT_BGR48 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGR48 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGR48 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGR48 = SDL_PixelFormat 406859782

-- | [C declaration]: @SDL_PIXELFORMAT_RGBA64@, defined at @SDL3\/SDL_pixels.h 627:5@
pattern SDL_PIXELFORMAT_RGBA64 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBA64 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBA64 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBA64 = SDL_PixelFormat 404766728

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB64@, defined at @SDL3\/SDL_pixels.h 629:5@
pattern SDL_PIXELFORMAT_ARGB64 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB64 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB64 :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB64 = SDL_PixelFormat 405815304

-- | [C declaration]: @SDL_PIXELFORMAT_BGRA64@, defined at @SDL3\/SDL_pixels.h 631:5@
pattern SDL_PIXELFORMAT_BGRA64 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRA64 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRA64 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRA64 = SDL_PixelFormat 407912456

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR64@, defined at @SDL3\/SDL_pixels.h 633:5@
pattern SDL_PIXELFORMAT_ABGR64 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR64 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR64 :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR64 = SDL_PixelFormat 408961032

-- | [C declaration]: @SDL_PIXELFORMAT_RGB48_FLOAT@, defined at @SDL3\/SDL_pixels.h 635:5@
pattern SDL_PIXELFORMAT_RGB48_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGB48_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGB48_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_RGB48_FLOAT = SDL_PixelFormat 437268486

-- | [C declaration]: @SDL_PIXELFORMAT_BGR48_FLOAT@, defined at @SDL3\/SDL_pixels.h 637:5@
pattern SDL_PIXELFORMAT_BGR48_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGR48_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGR48_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_BGR48_FLOAT = SDL_PixelFormat 440414214

-- | [C declaration]: @SDL_PIXELFORMAT_RGBA64_FLOAT@, defined at @SDL3\/SDL_pixels.h 639:5@
pattern SDL_PIXELFORMAT_RGBA64_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBA64_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBA64_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBA64_FLOAT = SDL_PixelFormat 438321160

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB64_FLOAT@, defined at @SDL3\/SDL_pixels.h 641:5@
pattern SDL_PIXELFORMAT_ARGB64_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB64_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB64_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB64_FLOAT = SDL_PixelFormat 439369736

-- | [C declaration]: @SDL_PIXELFORMAT_BGRA64_FLOAT@, defined at @SDL3\/SDL_pixels.h 643:5@
pattern SDL_PIXELFORMAT_BGRA64_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRA64_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRA64_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRA64_FLOAT = SDL_PixelFormat 441466888

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR64_FLOAT@, defined at @SDL3\/SDL_pixels.h 645:5@
pattern SDL_PIXELFORMAT_ABGR64_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR64_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR64_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR64_FLOAT = SDL_PixelFormat 442515464

-- | [C declaration]: @SDL_PIXELFORMAT_RGB96_FLOAT@, defined at @SDL3\/SDL_pixels.h 647:5@
pattern SDL_PIXELFORMAT_RGB96_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGB96_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGB96_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_RGB96_FLOAT = SDL_PixelFormat 454057996

-- | [C declaration]: @SDL_PIXELFORMAT_BGR96_FLOAT@, defined at @SDL3\/SDL_pixels.h 649:5@
pattern SDL_PIXELFORMAT_BGR96_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGR96_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGR96_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_BGR96_FLOAT = SDL_PixelFormat 457203724

-- | [C declaration]: @SDL_PIXELFORMAT_RGBA128_FLOAT@, defined at @SDL3\/SDL_pixels.h 651:5@
pattern SDL_PIXELFORMAT_RGBA128_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBA128_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBA128_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBA128_FLOAT = SDL_PixelFormat 455114768

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB128_FLOAT@, defined at @SDL3\/SDL_pixels.h 653:5@
pattern SDL_PIXELFORMAT_ARGB128_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB128_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB128_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB128_FLOAT = SDL_PixelFormat 456163344

-- | [C declaration]: @SDL_PIXELFORMAT_BGRA128_FLOAT@, defined at @SDL3\/SDL_pixels.h 655:5@
pattern SDL_PIXELFORMAT_BGRA128_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRA128_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRA128_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRA128_FLOAT = SDL_PixelFormat 458260496

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR128_FLOAT@, defined at @SDL3\/SDL_pixels.h 657:5@
pattern SDL_PIXELFORMAT_ABGR128_FLOAT :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR128_FLOAT :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR128_FLOAT :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR128_FLOAT = SDL_PixelFormat 459309072

-- | Planar mode: Y + V + U (3 planes)
--
--     [C declaration]: @SDL_PIXELFORMAT_YV12@, defined at @SDL3\/SDL_pixels.h 660:5@
pattern SDL_PIXELFORMAT_YV12 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_YV12 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_YV12 :: SDL_PixelFormat
SDL_PIXELFORMAT_YV12 = SDL_PixelFormat 842094169

-- | Planar mode: Y + U + V (3 planes)
--
--     [C declaration]: @SDL_PIXELFORMAT_IYUV@, defined at @SDL3\/SDL_pixels.h 662:5@
pattern SDL_PIXELFORMAT_IYUV :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_IYUV :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_IYUV :: SDL_PixelFormat
SDL_PIXELFORMAT_IYUV = SDL_PixelFormat 1448433993

-- | Packed mode: Y0+U0+Y1+V0 (1 plane)
--
--     [C declaration]: @SDL_PIXELFORMAT_YUY2@, defined at @SDL3\/SDL_pixels.h 664:5@
pattern SDL_PIXELFORMAT_YUY2 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_YUY2 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_YUY2 :: SDL_PixelFormat
SDL_PIXELFORMAT_YUY2 = SDL_PixelFormat 844715353

-- | Packed mode: U0+Y0+V0+Y1 (1 plane)
--
--     [C declaration]: @SDL_PIXELFORMAT_UYVY@, defined at @SDL3\/SDL_pixels.h 666:5@
pattern SDL_PIXELFORMAT_UYVY :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_UYVY :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_UYVY :: SDL_PixelFormat
SDL_PIXELFORMAT_UYVY = SDL_PixelFormat 1498831189

-- | Packed mode: Y0+V0+Y1+U0 (1 plane)
--
--     [C declaration]: @SDL_PIXELFORMAT_YVYU@, defined at @SDL3\/SDL_pixels.h 668:5@
pattern SDL_PIXELFORMAT_YVYU :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_YVYU :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_YVYU :: SDL_PixelFormat
SDL_PIXELFORMAT_YVYU = SDL_PixelFormat 1431918169

-- | Planar mode: Y + U\/V interleaved (2 planes)
--
--     [C declaration]: @SDL_PIXELFORMAT_NV12@, defined at @SDL3\/SDL_pixels.h 670:5@
pattern SDL_PIXELFORMAT_NV12 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_NV12 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_NV12 :: SDL_PixelFormat
SDL_PIXELFORMAT_NV12 = SDL_PixelFormat 842094158

-- | Planar mode: Y + V\/U interleaved (2 planes)
--
--     [C declaration]: @SDL_PIXELFORMAT_NV21@, defined at @SDL3\/SDL_pixels.h 672:5@
pattern SDL_PIXELFORMAT_NV21 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_NV21 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_NV21 :: SDL_PixelFormat
SDL_PIXELFORMAT_NV21 = SDL_PixelFormat 825382478

-- | Planar mode: Y + U\/V interleaved (2 planes)
--
--     [C declaration]: @SDL_PIXELFORMAT_P010@, defined at @SDL3\/SDL_pixels.h 674:5@
pattern SDL_PIXELFORMAT_P010 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_P010 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_P010 :: SDL_PixelFormat
SDL_PIXELFORMAT_P010 = SDL_PixelFormat 808530000

-- | Android video texture format
--
--     [C declaration]: @SDL_PIXELFORMAT_EXTERNAL_OES@, defined at @SDL3\/SDL_pixels.h 676:5@
pattern SDL_PIXELFORMAT_EXTERNAL_OES :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_EXTERNAL_OES :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_EXTERNAL_OES :: SDL_PixelFormat
SDL_PIXELFORMAT_EXTERNAL_OES = SDL_PixelFormat 542328143

-- | Motion JPEG
--
--     [C declaration]: @SDL_PIXELFORMAT_MJPG@, defined at @SDL3\/SDL_pixels.h 679:5@
pattern SDL_PIXELFORMAT_MJPG :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_MJPG :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_MJPG :: SDL_PixelFormat
SDL_PIXELFORMAT_MJPG = SDL_PixelFormat 1196444237

-- | [C declaration]: @SDL_PIXELFORMAT_RGBA32@, defined at @SDL3\/SDL_pixels.h 693:5@
pattern SDL_PIXELFORMAT_RGBA32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBA32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBA32 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBA32 = SDL_PixelFormat 376840196

-- | [C declaration]: @SDL_PIXELFORMAT_ARGB32@, defined at @SDL3\/SDL_pixels.h 694:5@
pattern SDL_PIXELFORMAT_ARGB32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ARGB32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ARGB32 :: SDL_PixelFormat
SDL_PIXELFORMAT_ARGB32 = SDL_PixelFormat 377888772

-- | [C declaration]: @SDL_PIXELFORMAT_BGRA32@, defined at @SDL3\/SDL_pixels.h 695:5@
pattern SDL_PIXELFORMAT_BGRA32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRA32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRA32 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRA32 = SDL_PixelFormat 372645892

-- | [C declaration]: @SDL_PIXELFORMAT_ABGR32@, defined at @SDL3\/SDL_pixels.h 696:5@
pattern SDL_PIXELFORMAT_ABGR32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_ABGR32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_ABGR32 :: SDL_PixelFormat
SDL_PIXELFORMAT_ABGR32 = SDL_PixelFormat 373694468

-- | [C declaration]: @SDL_PIXELFORMAT_RGBX32@, defined at @SDL3\/SDL_pixels.h 697:5@
pattern SDL_PIXELFORMAT_RGBX32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_RGBX32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_RGBX32 :: SDL_PixelFormat
SDL_PIXELFORMAT_RGBX32 = SDL_PixelFormat 374740996

-- | [C declaration]: @SDL_PIXELFORMAT_XRGB32@, defined at @SDL3\/SDL_pixels.h 698:5@
pattern SDL_PIXELFORMAT_XRGB32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XRGB32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XRGB32 :: SDL_PixelFormat
SDL_PIXELFORMAT_XRGB32 = SDL_PixelFormat 375789572

-- | [C declaration]: @SDL_PIXELFORMAT_BGRX32@, defined at @SDL3\/SDL_pixels.h 699:5@
pattern SDL_PIXELFORMAT_BGRX32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_BGRX32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_BGRX32 :: SDL_PixelFormat
SDL_PIXELFORMAT_BGRX32 = SDL_PixelFormat 370546692

-- | [C declaration]: @SDL_PIXELFORMAT_XBGR32@, defined at @SDL3\/SDL_pixels.h 700:5@
pattern SDL_PIXELFORMAT_XBGR32 :: SDL_PixelFormat
pattern $mSDL_PIXELFORMAT_XBGR32 :: forall {r}. SDL_PixelFormat -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_PIXELFORMAT_XBGR32 :: SDL_PixelFormat
SDL_PIXELFORMAT_XBGR32 = SDL_PixelFormat 371595268

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

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

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

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

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

deriving via Marshal.EquivStorable SDL_ColorType instance BG.Storable SDL_ColorType

deriving via BG.CUInt instance BG.Prim SDL_ColorType

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

  toCEnum :: CEnumZ SDL_ColorType -> SDL_ColorType
toCEnum = CUInt -> SDL_ColorType
CEnumZ SDL_ColorType -> SDL_ColorType
SDL_ColorType

  fromCEnum :: SDL_ColorType -> CEnumZ SDL_ColorType
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_ColorType -> DeclaredValues SDL_ColorType
declaredValues =
    \proxy SDL_ColorType
_ ->
      [(CEnumZ SDL_ColorType, NonEmpty String)]
-> DeclaredValues SDL_ColorType
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_ColorType
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_TYPE_UNKNOWN")
        , (CUInt
CEnumZ SDL_ColorType
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_TYPE_RGB")
        , (CUInt
CEnumZ SDL_ColorType
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_TYPE_YCBCR")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_ColorType where
  minDeclaredValue :: SDL_ColorType
minDeclaredValue = SDL_ColorType
SDL_COLOR_TYPE_UNKNOWN

  maxDeclaredValue :: SDL_ColorType
maxDeclaredValue = SDL_ColorType
SDL_COLOR_TYPE_YCBCR

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_COLOR_TYPE_UNKNOWN@, defined at @SDL3\/SDL_pixels.h 711:5@
pattern SDL_COLOR_TYPE_UNKNOWN :: SDL_ColorType
pattern $mSDL_COLOR_TYPE_UNKNOWN :: forall {r}. SDL_ColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_TYPE_UNKNOWN :: SDL_ColorType
SDL_COLOR_TYPE_UNKNOWN = SDL_ColorType 0

-- | [C declaration]: @SDL_COLOR_TYPE_RGB@, defined at @SDL3\/SDL_pixels.h 712:5@
pattern SDL_COLOR_TYPE_RGB :: SDL_ColorType
pattern $mSDL_COLOR_TYPE_RGB :: forall {r}. SDL_ColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_TYPE_RGB :: SDL_ColorType
SDL_COLOR_TYPE_RGB = SDL_ColorType 1

-- | [C declaration]: @SDL_COLOR_TYPE_YCBCR@, defined at @SDL3\/SDL_pixels.h 713:5@
pattern SDL_COLOR_TYPE_YCBCR :: SDL_ColorType
pattern $mSDL_COLOR_TYPE_YCBCR :: forall {r}. SDL_ColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_TYPE_YCBCR :: SDL_ColorType
SDL_COLOR_TYPE_YCBCR = SDL_ColorType 2

-- | Colorspace color range, as described by [https:\/\/www.itu.int\/rec\/R-REC-BT.2100-2-201807-I\/en](https://www.itu.int/rec/R-REC-BT.2100-2-201807-I/en)
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_ColorRange@, defined at @SDL3\/SDL_pixels.h 722:14@
newtype SDL_ColorRange = SDL_ColorRange
  { SDL_ColorRange -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_ColorRange -> Rep SDL_ColorRange x)
-> (forall x. Rep SDL_ColorRange x -> SDL_ColorRange)
-> Generic SDL_ColorRange
forall x. Rep SDL_ColorRange x -> SDL_ColorRange
forall x. SDL_ColorRange -> Rep SDL_ColorRange x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_ColorRange -> Rep SDL_ColorRange x
from :: forall x. SDL_ColorRange -> Rep SDL_ColorRange x
$cto :: forall x. Rep SDL_ColorRange x -> SDL_ColorRange
to :: forall x. Rep SDL_ColorRange x -> SDL_ColorRange
BG.Generic, SDL_ColorRange -> SDL_ColorRange -> Bool
(SDL_ColorRange -> SDL_ColorRange -> Bool)
-> (SDL_ColorRange -> SDL_ColorRange -> Bool) -> Eq SDL_ColorRange
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_ColorRange -> SDL_ColorRange -> Bool
== :: SDL_ColorRange -> SDL_ColorRange -> Bool
$c/= :: SDL_ColorRange -> SDL_ColorRange -> Bool
/= :: SDL_ColorRange -> SDL_ColorRange -> Bool
Eq, Eq SDL_ColorRange
Eq SDL_ColorRange =>
(SDL_ColorRange -> SDL_ColorRange -> Ordering)
-> (SDL_ColorRange -> SDL_ColorRange -> Bool)
-> (SDL_ColorRange -> SDL_ColorRange -> Bool)
-> (SDL_ColorRange -> SDL_ColorRange -> Bool)
-> (SDL_ColorRange -> SDL_ColorRange -> Bool)
-> (SDL_ColorRange -> SDL_ColorRange -> SDL_ColorRange)
-> (SDL_ColorRange -> SDL_ColorRange -> SDL_ColorRange)
-> Ord SDL_ColorRange
SDL_ColorRange -> SDL_ColorRange -> Bool
SDL_ColorRange -> SDL_ColorRange -> Ordering
SDL_ColorRange -> SDL_ColorRange -> SDL_ColorRange
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_ColorRange -> SDL_ColorRange -> Ordering
compare :: SDL_ColorRange -> SDL_ColorRange -> Ordering
$c< :: SDL_ColorRange -> SDL_ColorRange -> Bool
< :: SDL_ColorRange -> SDL_ColorRange -> Bool
$c<= :: SDL_ColorRange -> SDL_ColorRange -> Bool
<= :: SDL_ColorRange -> SDL_ColorRange -> Bool
$c> :: SDL_ColorRange -> SDL_ColorRange -> Bool
> :: SDL_ColorRange -> SDL_ColorRange -> Bool
$c>= :: SDL_ColorRange -> SDL_ColorRange -> Bool
>= :: SDL_ColorRange -> SDL_ColorRange -> Bool
$cmax :: SDL_ColorRange -> SDL_ColorRange -> SDL_ColorRange
max :: SDL_ColorRange -> SDL_ColorRange -> SDL_ColorRange
$cmin :: SDL_ColorRange -> SDL_ColorRange -> SDL_ColorRange
min :: SDL_ColorRange -> SDL_ColorRange -> SDL_ColorRange
Ord)
  deriving newtype (FFIType SDL_ColorRange -> SDL_ColorRange
SDL_ColorRange -> FFIType SDL_ColorRange
(SDL_ColorRange -> FFIType SDL_ColorRange)
-> (FFIType SDL_ColorRange -> SDL_ColorRange)
-> HasFFIType SDL_ColorRange
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_ColorRange -> FFIType SDL_ColorRange
toFFIType :: SDL_ColorRange -> FFIType SDL_ColorRange
$cfromFFIType :: FFIType SDL_ColorRange -> SDL_ColorRange
fromFFIType :: FFIType SDL_ColorRange -> SDL_ColorRange
BG.HasFFIType)

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

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

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

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

deriving via Marshal.EquivStorable SDL_ColorRange instance BG.Storable SDL_ColorRange

deriving via BG.CUInt instance BG.Prim SDL_ColorRange

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

  toCEnum :: CEnumZ SDL_ColorRange -> SDL_ColorRange
toCEnum = CUInt -> SDL_ColorRange
CEnumZ SDL_ColorRange -> SDL_ColorRange
SDL_ColorRange

  fromCEnum :: SDL_ColorRange -> CEnumZ SDL_ColorRange
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_ColorRange -> DeclaredValues SDL_ColorRange
declaredValues =
    \proxy SDL_ColorRange
_ ->
      [(CEnumZ SDL_ColorRange, NonEmpty String)]
-> DeclaredValues SDL_ColorRange
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_ColorRange
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_RANGE_UNKNOWN")
        , (CUInt
CEnumZ SDL_ColorRange
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_RANGE_LIMITED")
        , (CUInt
CEnumZ SDL_ColorRange
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_RANGE_FULL")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_ColorRange where
  minDeclaredValue :: SDL_ColorRange
minDeclaredValue = SDL_ColorRange
SDL_COLOR_RANGE_UNKNOWN

  maxDeclaredValue :: SDL_ColorRange
maxDeclaredValue = SDL_ColorRange
SDL_COLOR_RANGE_FULL

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_COLOR_RANGE_UNKNOWN@, defined at @SDL3\/SDL_pixels.h 724:5@
pattern SDL_COLOR_RANGE_UNKNOWN :: SDL_ColorRange
pattern $mSDL_COLOR_RANGE_UNKNOWN :: forall {r}. SDL_ColorRange -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_RANGE_UNKNOWN :: SDL_ColorRange
SDL_COLOR_RANGE_UNKNOWN = SDL_ColorRange 0

-- | Narrow range, e.g. 16-235 for 8-bit RGB and luma, and 16-240 for 8-bit chroma
--
--     [C declaration]: @SDL_COLOR_RANGE_LIMITED@, defined at @SDL3\/SDL_pixels.h 725:5@
pattern SDL_COLOR_RANGE_LIMITED :: SDL_ColorRange
pattern $mSDL_COLOR_RANGE_LIMITED :: forall {r}. SDL_ColorRange -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_RANGE_LIMITED :: SDL_ColorRange
SDL_COLOR_RANGE_LIMITED = SDL_ColorRange 1

-- | Full range, e.g. 0-255 for 8-bit RGB and luma, and 1-255 for 8-bit chroma
--
--     [C declaration]: @SDL_COLOR_RANGE_FULL@, defined at @SDL3\/SDL_pixels.h 726:5@
pattern SDL_COLOR_RANGE_FULL :: SDL_ColorRange
pattern $mSDL_COLOR_RANGE_FULL :: forall {r}. SDL_ColorRange -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_RANGE_FULL :: SDL_ColorRange
SDL_COLOR_RANGE_FULL = SDL_ColorRange 2

-- | Colorspace color primaries, as described by [https:\/\/www.itu.int\/rec\/T-REC-H.273-201612-S\/en](https://www.itu.int/rec/T-REC-H.273-201612-S/en)
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_ColorPrimaries@, defined at @SDL3\/SDL_pixels.h 735:14@
newtype SDL_ColorPrimaries = SDL_ColorPrimaries
  { SDL_ColorPrimaries -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_ColorPrimaries -> Rep SDL_ColorPrimaries x)
-> (forall x. Rep SDL_ColorPrimaries x -> SDL_ColorPrimaries)
-> Generic SDL_ColorPrimaries
forall x. Rep SDL_ColorPrimaries x -> SDL_ColorPrimaries
forall x. SDL_ColorPrimaries -> Rep SDL_ColorPrimaries x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_ColorPrimaries -> Rep SDL_ColorPrimaries x
from :: forall x. SDL_ColorPrimaries -> Rep SDL_ColorPrimaries x
$cto :: forall x. Rep SDL_ColorPrimaries x -> SDL_ColorPrimaries
to :: forall x. Rep SDL_ColorPrimaries x -> SDL_ColorPrimaries
BG.Generic, SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
(SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool)
-> (SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool)
-> Eq SDL_ColorPrimaries
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
== :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
$c/= :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
/= :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
Eq, Eq SDL_ColorPrimaries
Eq SDL_ColorPrimaries =>
(SDL_ColorPrimaries -> SDL_ColorPrimaries -> Ordering)
-> (SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool)
-> (SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool)
-> (SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool)
-> (SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool)
-> (SDL_ColorPrimaries -> SDL_ColorPrimaries -> SDL_ColorPrimaries)
-> (SDL_ColorPrimaries -> SDL_ColorPrimaries -> SDL_ColorPrimaries)
-> Ord SDL_ColorPrimaries
SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
SDL_ColorPrimaries -> SDL_ColorPrimaries -> Ordering
SDL_ColorPrimaries -> SDL_ColorPrimaries -> SDL_ColorPrimaries
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_ColorPrimaries -> SDL_ColorPrimaries -> Ordering
compare :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Ordering
$c< :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
< :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
$c<= :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
<= :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
$c> :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
> :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
$c>= :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
>= :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> Bool
$cmax :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> SDL_ColorPrimaries
max :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> SDL_ColorPrimaries
$cmin :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> SDL_ColorPrimaries
min :: SDL_ColorPrimaries -> SDL_ColorPrimaries -> SDL_ColorPrimaries
Ord)
  deriving newtype (FFIType SDL_ColorPrimaries -> SDL_ColorPrimaries
SDL_ColorPrimaries -> FFIType SDL_ColorPrimaries
(SDL_ColorPrimaries -> FFIType SDL_ColorPrimaries)
-> (FFIType SDL_ColorPrimaries -> SDL_ColorPrimaries)
-> HasFFIType SDL_ColorPrimaries
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_ColorPrimaries -> FFIType SDL_ColorPrimaries
toFFIType :: SDL_ColorPrimaries -> FFIType SDL_ColorPrimaries
$cfromFFIType :: FFIType SDL_ColorPrimaries -> SDL_ColorPrimaries
fromFFIType :: FFIType SDL_ColorPrimaries -> SDL_ColorPrimaries
BG.HasFFIType)

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

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

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

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

deriving via Marshal.EquivStorable SDL_ColorPrimaries instance BG.Storable SDL_ColorPrimaries

deriving via BG.CUInt instance BG.Prim SDL_ColorPrimaries

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

  toCEnum :: CEnumZ SDL_ColorPrimaries -> SDL_ColorPrimaries
toCEnum = CUInt -> SDL_ColorPrimaries
CEnumZ SDL_ColorPrimaries -> SDL_ColorPrimaries
SDL_ColorPrimaries

  fromCEnum :: SDL_ColorPrimaries -> CEnumZ SDL_ColorPrimaries
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_ColorPrimaries -> DeclaredValues SDL_ColorPrimaries
declaredValues =
    \proxy SDL_ColorPrimaries
_ ->
      [(CEnumZ SDL_ColorPrimaries, NonEmpty String)]
-> DeclaredValues SDL_ColorPrimaries
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_ColorPrimaries
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_UNKNOWN")
        , (CUInt
CEnumZ SDL_ColorPrimaries
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_BT709")
        , (CUInt
CEnumZ SDL_ColorPrimaries
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_UNSPECIFIED")
        , (CUInt
CEnumZ SDL_ColorPrimaries
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_BT470M")
        , (CUInt
CEnumZ SDL_ColorPrimaries
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_BT470BG")
        , (CUInt
CEnumZ SDL_ColorPrimaries
6, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_BT601")
        , (CUInt
CEnumZ SDL_ColorPrimaries
7, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_SMPTE240")
        , (CUInt
CEnumZ SDL_ColorPrimaries
8, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_GENERIC_FILM")
        , (CUInt
CEnumZ SDL_ColorPrimaries
9, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_BT2020")
        , (CUInt
CEnumZ SDL_ColorPrimaries
10, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_XYZ")
        , (CUInt
CEnumZ SDL_ColorPrimaries
11, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_SMPTE431")
        , (CUInt
CEnumZ SDL_ColorPrimaries
12, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_SMPTE432")
        , (CUInt
CEnumZ SDL_ColorPrimaries
22, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_EBU3213")
        , (CUInt
CEnumZ SDL_ColorPrimaries
31, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLOR_PRIMARIES_CUSTOM")
        ]

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

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

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_COLOR_PRIMARIES_UNKNOWN@, defined at @SDL3\/SDL_pixels.h 737:5@
pattern SDL_COLOR_PRIMARIES_UNKNOWN :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_UNKNOWN :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_UNKNOWN :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_UNKNOWN = SDL_ColorPrimaries 0

-- | ITU-R BT.709-6
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_BT709@, defined at @SDL3\/SDL_pixels.h 738:5@
pattern SDL_COLOR_PRIMARIES_BT709 :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_BT709 :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_BT709 :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_BT709 = SDL_ColorPrimaries 1

-- | [C declaration]: @SDL_COLOR_PRIMARIES_UNSPECIFIED@, defined at @SDL3\/SDL_pixels.h 739:5@
pattern SDL_COLOR_PRIMARIES_UNSPECIFIED :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_UNSPECIFIED :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_UNSPECIFIED :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_UNSPECIFIED = SDL_ColorPrimaries 2

-- | ITU-R BT.470-6 System M
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_BT470M@, defined at @SDL3\/SDL_pixels.h 740:5@
pattern SDL_COLOR_PRIMARIES_BT470M :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_BT470M :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_BT470M :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_BT470M = SDL_ColorPrimaries 4

-- | ITU-R BT.470-6 System B, G \/ ITU-R BT.601-7 625
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_BT470BG@, defined at @SDL3\/SDL_pixels.h 741:5@
pattern SDL_COLOR_PRIMARIES_BT470BG :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_BT470BG :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_BT470BG :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_BT470BG = SDL_ColorPrimaries 5

-- | ITU-R BT.601-7 525, SMPTE 170M
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_BT601@, defined at @SDL3\/SDL_pixels.h 742:5@
pattern SDL_COLOR_PRIMARIES_BT601 :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_BT601 :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_BT601 :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_BT601 = SDL_ColorPrimaries 6

-- | SMPTE 240M, functionally the same as SDL_COLOR_PRIMARIES_BT601
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_SMPTE240@, defined at @SDL3\/SDL_pixels.h 743:5@
pattern SDL_COLOR_PRIMARIES_SMPTE240 :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_SMPTE240 :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_SMPTE240 :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_SMPTE240 = SDL_ColorPrimaries 7

-- | Generic film (color filters using Illuminant C)
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_GENERIC_FILM@, defined at @SDL3\/SDL_pixels.h 744:5@
pattern SDL_COLOR_PRIMARIES_GENERIC_FILM :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_GENERIC_FILM :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_GENERIC_FILM :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_GENERIC_FILM = SDL_ColorPrimaries 8

-- | ITU-R BT.2020-2 \/ ITU-R BT.2100-0
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_BT2020@, defined at @SDL3\/SDL_pixels.h 745:5@
pattern SDL_COLOR_PRIMARIES_BT2020 :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_BT2020 :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_BT2020 :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_BT2020 = SDL_ColorPrimaries 9

-- | SMPTE ST 428-1
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_XYZ@, defined at @SDL3\/SDL_pixels.h 746:5@
pattern SDL_COLOR_PRIMARIES_XYZ :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_XYZ :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_XYZ :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_XYZ = SDL_ColorPrimaries 10

-- | SMPTE RP 431-2
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_SMPTE431@, defined at @SDL3\/SDL_pixels.h 747:5@
pattern SDL_COLOR_PRIMARIES_SMPTE431 :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_SMPTE431 :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_SMPTE431 :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_SMPTE431 = SDL_ColorPrimaries 11

-- | SMPTE EG 432-1 \/ DCI P3
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_SMPTE432@, defined at @SDL3\/SDL_pixels.h 748:5@
pattern SDL_COLOR_PRIMARIES_SMPTE432 :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_SMPTE432 :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_SMPTE432 :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_SMPTE432 = SDL_ColorPrimaries 12

-- | EBU Tech. 3213-E
--
--     [C declaration]: @SDL_COLOR_PRIMARIES_EBU3213@, defined at @SDL3\/SDL_pixels.h 749:5@
pattern SDL_COLOR_PRIMARIES_EBU3213 :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_EBU3213 :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_EBU3213 :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_EBU3213 = SDL_ColorPrimaries 22

-- | [C declaration]: @SDL_COLOR_PRIMARIES_CUSTOM@, defined at @SDL3\/SDL_pixels.h 750:5@
pattern SDL_COLOR_PRIMARIES_CUSTOM :: SDL_ColorPrimaries
pattern $mSDL_COLOR_PRIMARIES_CUSTOM :: forall {r}. SDL_ColorPrimaries -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLOR_PRIMARIES_CUSTOM :: SDL_ColorPrimaries
SDL_COLOR_PRIMARIES_CUSTOM = SDL_ColorPrimaries 31

-- | Colorspace transfer characteristics.
--
--     These are as described by [https:\/\/www.itu.int\/rec\/T-REC-H.273-201612-S\/en](https://www.itu.int/rec/T-REC-H.273-201612-S/en)
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_TransferCharacteristics@, defined at @SDL3\/SDL_pixels.h 760:14@
newtype SDL_TransferCharacteristics = SDL_TransferCharacteristics
  { SDL_TransferCharacteristics -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x.
 SDL_TransferCharacteristics -> Rep SDL_TransferCharacteristics x)
-> (forall x.
    Rep SDL_TransferCharacteristics x -> SDL_TransferCharacteristics)
-> Generic SDL_TransferCharacteristics
forall x.
Rep SDL_TransferCharacteristics x -> SDL_TransferCharacteristics
forall x.
SDL_TransferCharacteristics -> Rep SDL_TransferCharacteristics x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
SDL_TransferCharacteristics -> Rep SDL_TransferCharacteristics x
from :: forall x.
SDL_TransferCharacteristics -> Rep SDL_TransferCharacteristics x
$cto :: forall x.
Rep SDL_TransferCharacteristics x -> SDL_TransferCharacteristics
to :: forall x.
Rep SDL_TransferCharacteristics x -> SDL_TransferCharacteristics
BG.Generic, SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
(SDL_TransferCharacteristics
 -> SDL_TransferCharacteristics -> Bool)
-> (SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics -> Bool)
-> Eq SDL_TransferCharacteristics
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
== :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
$c/= :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
/= :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
Eq, Eq SDL_TransferCharacteristics
Eq SDL_TransferCharacteristics =>
(SDL_TransferCharacteristics
 -> SDL_TransferCharacteristics -> Ordering)
-> (SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics -> Bool)
-> (SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics -> Bool)
-> (SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics -> Bool)
-> (SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics -> Bool)
-> (SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics -> SDL_TransferCharacteristics)
-> (SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics -> SDL_TransferCharacteristics)
-> Ord SDL_TransferCharacteristics
SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
SDL_TransferCharacteristics
-> SDL_TransferCharacteristics -> Ordering
SDL_TransferCharacteristics
-> SDL_TransferCharacteristics -> SDL_TransferCharacteristics
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_TransferCharacteristics
-> SDL_TransferCharacteristics -> Ordering
compare :: SDL_TransferCharacteristics
-> SDL_TransferCharacteristics -> Ordering
$c< :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
< :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
$c<= :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
<= :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
$c> :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
> :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
$c>= :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
>= :: SDL_TransferCharacteristics -> SDL_TransferCharacteristics -> Bool
$cmax :: SDL_TransferCharacteristics
-> SDL_TransferCharacteristics -> SDL_TransferCharacteristics
max :: SDL_TransferCharacteristics
-> SDL_TransferCharacteristics -> SDL_TransferCharacteristics
$cmin :: SDL_TransferCharacteristics
-> SDL_TransferCharacteristics -> SDL_TransferCharacteristics
min :: SDL_TransferCharacteristics
-> SDL_TransferCharacteristics -> SDL_TransferCharacteristics
Ord)
  deriving newtype (FFIType SDL_TransferCharacteristics -> SDL_TransferCharacteristics
SDL_TransferCharacteristics -> FFIType SDL_TransferCharacteristics
(SDL_TransferCharacteristics
 -> FFIType SDL_TransferCharacteristics)
-> (FFIType SDL_TransferCharacteristics
    -> SDL_TransferCharacteristics)
-> HasFFIType SDL_TransferCharacteristics
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_TransferCharacteristics -> FFIType SDL_TransferCharacteristics
toFFIType :: SDL_TransferCharacteristics -> FFIType SDL_TransferCharacteristics
$cfromFFIType :: FFIType SDL_TransferCharacteristics -> SDL_TransferCharacteristics
fromFFIType :: FFIType SDL_TransferCharacteristics -> SDL_TransferCharacteristics
BG.HasFFIType)

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

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

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

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

deriving via
  Marshal.EquivStorable SDL_TransferCharacteristics
  instance
    BG.Storable SDL_TransferCharacteristics

deriving via BG.CUInt instance BG.Prim SDL_TransferCharacteristics

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

  toCEnum :: CEnumZ SDL_TransferCharacteristics -> SDL_TransferCharacteristics
toCEnum = CUInt -> SDL_TransferCharacteristics
CEnumZ SDL_TransferCharacteristics -> SDL_TransferCharacteristics
SDL_TransferCharacteristics

  fromCEnum :: SDL_TransferCharacteristics -> CEnumZ SDL_TransferCharacteristics
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_TransferCharacteristics
-> DeclaredValues SDL_TransferCharacteristics
declaredValues =
    \proxy SDL_TransferCharacteristics
_ ->
      [(CEnumZ SDL_TransferCharacteristics, NonEmpty String)]
-> DeclaredValues SDL_TransferCharacteristics
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_TransferCharacteristics
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_UNKNOWN")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_BT709")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_GAMMA22")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_GAMMA28")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
6, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_BT601")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
7, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_SMPTE240")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
8, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_LINEAR")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
9, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_LOG100")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
10, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
11, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_IEC61966")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
12, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_BT1361")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
13, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_SRGB")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
14, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
15, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
16, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_PQ")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
17, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_SMPTE428")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
18, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_HLG")
        , (CUInt
CEnumZ SDL_TransferCharacteristics
31, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_TRANSFER_CHARACTERISTICS_CUSTOM")
        ]

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

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

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_UNKNOWN@, defined at @SDL3\/SDL_pixels.h 762:5@
pattern SDL_TRANSFER_CHARACTERISTICS_UNKNOWN :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_UNKNOWN :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_UNKNOWN :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_UNKNOWN = SDL_TransferCharacteristics 0

-- | Rec. ITU-R BT.709-6 \/ ITU-R BT1361
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_BT709@, defined at @SDL3\/SDL_pixels.h 763:5@
pattern SDL_TRANSFER_CHARACTERISTICS_BT709 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_BT709 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_BT709 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_BT709 = SDL_TransferCharacteristics 1

-- | [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED@, defined at @SDL3\/SDL_pixels.h 764:5@
pattern SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED = SDL_TransferCharacteristics 2

-- | ITU-R BT.470-6 System M \/ ITU-R BT1700 625 PAL & SECAM
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_GAMMA22@, defined at @SDL3\/SDL_pixels.h 765:5@
pattern SDL_TRANSFER_CHARACTERISTICS_GAMMA22 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_GAMMA22 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_GAMMA22 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_GAMMA22 = SDL_TransferCharacteristics 4

-- | ITU-R BT.470-6 System B, G
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_GAMMA28@, defined at @SDL3\/SDL_pixels.h 766:5@
pattern SDL_TRANSFER_CHARACTERISTICS_GAMMA28 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_GAMMA28 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_GAMMA28 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_GAMMA28 = SDL_TransferCharacteristics 5

-- | SMPTE ST 170M \/ ITU-R BT.601-7 525 or 625
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_BT601@, defined at @SDL3\/SDL_pixels.h 767:5@
pattern SDL_TRANSFER_CHARACTERISTICS_BT601 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_BT601 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_BT601 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_BT601 = SDL_TransferCharacteristics 6

-- | SMPTE ST 240M
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_SMPTE240@, defined at @SDL3\/SDL_pixels.h 768:5@
pattern SDL_TRANSFER_CHARACTERISTICS_SMPTE240 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_SMPTE240 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_SMPTE240 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_SMPTE240 = SDL_TransferCharacteristics 7

-- | [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_LINEAR@, defined at @SDL3\/SDL_pixels.h 769:5@
pattern SDL_TRANSFER_CHARACTERISTICS_LINEAR :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_LINEAR :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_LINEAR :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_LINEAR = SDL_TransferCharacteristics 8

-- | [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_LOG100@, defined at @SDL3\/SDL_pixels.h 770:5@
pattern SDL_TRANSFER_CHARACTERISTICS_LOG100 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_LOG100 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_LOG100 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_LOG100 = SDL_TransferCharacteristics 9

-- | [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10@, defined at @SDL3\/SDL_pixels.h 771:5@
pattern SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10 = SDL_TransferCharacteristics 10

-- | IEC 61966-2-4
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_IEC61966@, defined at @SDL3\/SDL_pixels.h 772:5@
pattern SDL_TRANSFER_CHARACTERISTICS_IEC61966 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_IEC61966 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_IEC61966 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_IEC61966 = SDL_TransferCharacteristics 11

-- | ITU-R BT1361 Extended Colour Gamut
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_BT1361@, defined at @SDL3\/SDL_pixels.h 773:5@
pattern SDL_TRANSFER_CHARACTERISTICS_BT1361 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_BT1361 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_BT1361 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_BT1361 = SDL_TransferCharacteristics 12

-- | IEC 61966-2-1 (sRGB or sYCC)
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_SRGB@, defined at @SDL3\/SDL_pixels.h 774:5@
pattern SDL_TRANSFER_CHARACTERISTICS_SRGB :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_SRGB :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_SRGB :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_SRGB = SDL_TransferCharacteristics 13

-- | ITU-R BT2020 for 10-bit system
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT@, defined at @SDL3\/SDL_pixels.h 775:5@
pattern SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT = SDL_TransferCharacteristics 14

-- | ITU-R BT2020 for 12-bit system
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT@, defined at @SDL3\/SDL_pixels.h 776:5@
pattern SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT = SDL_TransferCharacteristics 15

-- | SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_PQ@, defined at @SDL3\/SDL_pixels.h 777:5@
pattern SDL_TRANSFER_CHARACTERISTICS_PQ :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_PQ :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_PQ :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_PQ = SDL_TransferCharacteristics 16

-- | SMPTE ST 428-1
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_SMPTE428@, defined at @SDL3\/SDL_pixels.h 778:5@
pattern SDL_TRANSFER_CHARACTERISTICS_SMPTE428 :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_SMPTE428 :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_SMPTE428 :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_SMPTE428 = SDL_TransferCharacteristics 17

-- | ARIB STD-B67, known as \"hybrid log-gamma\" (HLG)
--
--     [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_HLG@, defined at @SDL3\/SDL_pixels.h 779:5@
pattern SDL_TRANSFER_CHARACTERISTICS_HLG :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_HLG :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_HLG :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_HLG = SDL_TransferCharacteristics 18

-- | [C declaration]: @SDL_TRANSFER_CHARACTERISTICS_CUSTOM@, defined at @SDL3\/SDL_pixels.h 780:5@
pattern SDL_TRANSFER_CHARACTERISTICS_CUSTOM :: SDL_TransferCharacteristics
pattern $mSDL_TRANSFER_CHARACTERISTICS_CUSTOM :: forall {r}.
SDL_TransferCharacteristics -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_TRANSFER_CHARACTERISTICS_CUSTOM :: SDL_TransferCharacteristics
SDL_TRANSFER_CHARACTERISTICS_CUSTOM = SDL_TransferCharacteristics 31

-- | Colorspace matrix coefficients.
--
--     These are as described by [https:\/\/www.itu.int\/rec\/T-REC-H.273-201612-S\/en](https://www.itu.int/rec/T-REC-H.273-201612-S/en)
--
--     @since 3.2.0
--
--     [C declaration]: @enum SDL_MatrixCoefficients@, defined at @SDL3\/SDL_pixels.h 790:14@
newtype SDL_MatrixCoefficients = SDL_MatrixCoefficients
  { SDL_MatrixCoefficients -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_MatrixCoefficients -> Rep SDL_MatrixCoefficients x)
-> (forall x.
    Rep SDL_MatrixCoefficients x -> SDL_MatrixCoefficients)
-> Generic SDL_MatrixCoefficients
forall x. Rep SDL_MatrixCoefficients x -> SDL_MatrixCoefficients
forall x. SDL_MatrixCoefficients -> Rep SDL_MatrixCoefficients x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_MatrixCoefficients -> Rep SDL_MatrixCoefficients x
from :: forall x. SDL_MatrixCoefficients -> Rep SDL_MatrixCoefficients x
$cto :: forall x. Rep SDL_MatrixCoefficients x -> SDL_MatrixCoefficients
to :: forall x. Rep SDL_MatrixCoefficients x -> SDL_MatrixCoefficients
BG.Generic, SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
(SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool)
-> (SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool)
-> Eq SDL_MatrixCoefficients
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
== :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
$c/= :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
/= :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
Eq, Eq SDL_MatrixCoefficients
Eq SDL_MatrixCoefficients =>
(SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Ordering)
-> (SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool)
-> (SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool)
-> (SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool)
-> (SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool)
-> (SDL_MatrixCoefficients
    -> SDL_MatrixCoefficients -> SDL_MatrixCoefficients)
-> (SDL_MatrixCoefficients
    -> SDL_MatrixCoefficients -> SDL_MatrixCoefficients)
-> Ord SDL_MatrixCoefficients
SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Ordering
SDL_MatrixCoefficients
-> SDL_MatrixCoefficients -> SDL_MatrixCoefficients
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_MatrixCoefficients -> SDL_MatrixCoefficients -> Ordering
compare :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Ordering
$c< :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
< :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
$c<= :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
<= :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
$c> :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
> :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
$c>= :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
>= :: SDL_MatrixCoefficients -> SDL_MatrixCoefficients -> Bool
$cmax :: SDL_MatrixCoefficients
-> SDL_MatrixCoefficients -> SDL_MatrixCoefficients
max :: SDL_MatrixCoefficients
-> SDL_MatrixCoefficients -> SDL_MatrixCoefficients
$cmin :: SDL_MatrixCoefficients
-> SDL_MatrixCoefficients -> SDL_MatrixCoefficients
min :: SDL_MatrixCoefficients
-> SDL_MatrixCoefficients -> SDL_MatrixCoefficients
Ord)
  deriving newtype (FFIType SDL_MatrixCoefficients -> SDL_MatrixCoefficients
SDL_MatrixCoefficients -> FFIType SDL_MatrixCoefficients
(SDL_MatrixCoefficients -> FFIType SDL_MatrixCoefficients)
-> (FFIType SDL_MatrixCoefficients -> SDL_MatrixCoefficients)
-> HasFFIType SDL_MatrixCoefficients
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_MatrixCoefficients -> FFIType SDL_MatrixCoefficients
toFFIType :: SDL_MatrixCoefficients -> FFIType SDL_MatrixCoefficients
$cfromFFIType :: FFIType SDL_MatrixCoefficients -> SDL_MatrixCoefficients
fromFFIType :: FFIType SDL_MatrixCoefficients -> SDL_MatrixCoefficients
BG.HasFFIType)

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

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

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

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

deriving via
  Marshal.EquivStorable SDL_MatrixCoefficients
  instance
    BG.Storable SDL_MatrixCoefficients

deriving via BG.CUInt instance BG.Prim SDL_MatrixCoefficients

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

  toCEnum :: CEnumZ SDL_MatrixCoefficients -> SDL_MatrixCoefficients
toCEnum = CUInt -> SDL_MatrixCoefficients
CEnumZ SDL_MatrixCoefficients -> SDL_MatrixCoefficients
SDL_MatrixCoefficients

  fromCEnum :: SDL_MatrixCoefficients -> CEnumZ SDL_MatrixCoefficients
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_MatrixCoefficients
-> DeclaredValues SDL_MatrixCoefficients
declaredValues =
    \proxy SDL_MatrixCoefficients
_ ->
      [(CEnumZ SDL_MatrixCoefficients, NonEmpty String)]
-> DeclaredValues SDL_MatrixCoefficients
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_MatrixCoefficients
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_IDENTITY")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_BT709")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_UNSPECIFIED")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_FCC")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_BT470BG")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
6, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_BT601")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
7, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_SMPTE240")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
8, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_YCGCO")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
9, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_BT2020_NCL")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
10, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_BT2020_CL")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
11, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_SMPTE2085")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
12, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
13, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
14, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_ICTCP")
        , (CUInt
CEnumZ SDL_MatrixCoefficients
31, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MATRIX_COEFFICIENTS_CUSTOM")
        ]

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

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

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_MATRIX_COEFFICIENTS_IDENTITY@, defined at @SDL3\/SDL_pixels.h 792:5@
pattern SDL_MATRIX_COEFFICIENTS_IDENTITY :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_IDENTITY :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_IDENTITY :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_IDENTITY = SDL_MatrixCoefficients 0

-- | ITU-R BT.709-6
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_BT709@, defined at @SDL3\/SDL_pixels.h 793:5@
pattern SDL_MATRIX_COEFFICIENTS_BT709 :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_BT709 :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_BT709 :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_BT709 = SDL_MatrixCoefficients 1

-- | [C declaration]: @SDL_MATRIX_COEFFICIENTS_UNSPECIFIED@, defined at @SDL3\/SDL_pixels.h 794:5@
pattern SDL_MATRIX_COEFFICIENTS_UNSPECIFIED :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_UNSPECIFIED :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_UNSPECIFIED :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_UNSPECIFIED = SDL_MatrixCoefficients 2

-- | US FCC Title 47
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_FCC@, defined at @SDL3\/SDL_pixels.h 795:5@
pattern SDL_MATRIX_COEFFICIENTS_FCC :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_FCC :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_FCC :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_FCC = SDL_MatrixCoefficients 4

-- | ITU-R BT.470-6 System B, G \/ ITU-R BT.601-7 625, functionally the same as SDL_MATRIX_COEFFICIENTS_BT601
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_BT470BG@, defined at @SDL3\/SDL_pixels.h 796:5@
pattern SDL_MATRIX_COEFFICIENTS_BT470BG :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_BT470BG :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_BT470BG :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_BT470BG = SDL_MatrixCoefficients 5

-- | ITU-R BT.601-7 525
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_BT601@, defined at @SDL3\/SDL_pixels.h 797:5@
pattern SDL_MATRIX_COEFFICIENTS_BT601 :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_BT601 :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_BT601 :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_BT601 = SDL_MatrixCoefficients 6

-- | SMPTE 240M
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_SMPTE240@, defined at @SDL3\/SDL_pixels.h 798:5@
pattern SDL_MATRIX_COEFFICIENTS_SMPTE240 :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_SMPTE240 :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_SMPTE240 :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_SMPTE240 = SDL_MatrixCoefficients 7

-- | [C declaration]: @SDL_MATRIX_COEFFICIENTS_YCGCO@, defined at @SDL3\/SDL_pixels.h 799:5@
pattern SDL_MATRIX_COEFFICIENTS_YCGCO :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_YCGCO :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_YCGCO :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_YCGCO = SDL_MatrixCoefficients 8

-- | ITU-R BT.2020-2 non-constant luminance
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_BT2020_NCL@, defined at @SDL3\/SDL_pixels.h 800:5@
pattern SDL_MATRIX_COEFFICIENTS_BT2020_NCL :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_BT2020_NCL :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_BT2020_NCL :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_BT2020_NCL = SDL_MatrixCoefficients 9

-- | ITU-R BT.2020-2 constant luminance
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_BT2020_CL@, defined at @SDL3\/SDL_pixels.h 801:5@
pattern SDL_MATRIX_COEFFICIENTS_BT2020_CL :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_BT2020_CL :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_BT2020_CL :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_BT2020_CL = SDL_MatrixCoefficients 10

-- | SMPTE ST 2085
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_SMPTE2085@, defined at @SDL3\/SDL_pixels.h 802:5@
pattern SDL_MATRIX_COEFFICIENTS_SMPTE2085 :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_SMPTE2085 :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_SMPTE2085 :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_SMPTE2085 = SDL_MatrixCoefficients 11

-- | [C declaration]: @SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL@, defined at @SDL3\/SDL_pixels.h 803:5@
pattern SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL = SDL_MatrixCoefficients 12

-- | [C declaration]: @SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL@, defined at @SDL3\/SDL_pixels.h 804:5@
pattern SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL = SDL_MatrixCoefficients 13

-- | ITU-R BT.2100-0 ICTCP
--
--     [C declaration]: @SDL_MATRIX_COEFFICIENTS_ICTCP@, defined at @SDL3\/SDL_pixels.h 805:5@
pattern SDL_MATRIX_COEFFICIENTS_ICTCP :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_ICTCP :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_ICTCP :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_ICTCP = SDL_MatrixCoefficients 14

-- | [C declaration]: @SDL_MATRIX_COEFFICIENTS_CUSTOM@, defined at @SDL3\/SDL_pixels.h 806:5@
pattern SDL_MATRIX_COEFFICIENTS_CUSTOM :: SDL_MatrixCoefficients
pattern $mSDL_MATRIX_COEFFICIENTS_CUSTOM :: forall {r}.
SDL_MatrixCoefficients -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MATRIX_COEFFICIENTS_CUSTOM :: SDL_MatrixCoefficients
SDL_MATRIX_COEFFICIENTS_CUSTOM = SDL_MatrixCoefficients 31

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

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

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

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

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

deriving via Marshal.EquivStorable SDL_ChromaLocation instance BG.Storable SDL_ChromaLocation

deriving via BG.CUInt instance BG.Prim SDL_ChromaLocation

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

  toCEnum :: CEnumZ SDL_ChromaLocation -> SDL_ChromaLocation
toCEnum = CUInt -> SDL_ChromaLocation
CEnumZ SDL_ChromaLocation -> SDL_ChromaLocation
SDL_ChromaLocation

  fromCEnum :: SDL_ChromaLocation -> CEnumZ SDL_ChromaLocation
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_ChromaLocation -> DeclaredValues SDL_ChromaLocation
declaredValues =
    \proxy SDL_ChromaLocation
_ ->
      [(CEnumZ SDL_ChromaLocation, NonEmpty String)]
-> DeclaredValues SDL_ChromaLocation
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_ChromaLocation
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_CHROMA_LOCATION_NONE")
        , (CUInt
CEnumZ SDL_ChromaLocation
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_CHROMA_LOCATION_LEFT")
        , (CUInt
CEnumZ SDL_ChromaLocation
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_CHROMA_LOCATION_CENTER")
        , (CUInt
CEnumZ SDL_ChromaLocation
3, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_CHROMA_LOCATION_TOPLEFT")
        ]

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

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

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

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

instance CEnum.SequentialCEnum SDL_ChromaLocation where
  minDeclaredValue :: SDL_ChromaLocation
minDeclaredValue = SDL_ChromaLocation
SDL_CHROMA_LOCATION_NONE

  maxDeclaredValue :: SDL_ChromaLocation
maxDeclaredValue = SDL_ChromaLocation
SDL_CHROMA_LOCATION_TOPLEFT

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

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

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

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

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

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

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

-- | RGB, no chroma sampling
--
--     [C declaration]: @SDL_CHROMA_LOCATION_NONE@, defined at @SDL3\/SDL_pixels.h 816:5@
pattern SDL_CHROMA_LOCATION_NONE :: SDL_ChromaLocation
pattern $mSDL_CHROMA_LOCATION_NONE :: forall {r}. SDL_ChromaLocation -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_CHROMA_LOCATION_NONE :: SDL_ChromaLocation
SDL_CHROMA_LOCATION_NONE = SDL_ChromaLocation 0

-- | In MPEG-2, MPEG-4, and AVC, Cb and Cr are taken on midpoint of the left-edge of the 2x2 square. In other words, they have the same horizontal location as the top-left pixel, but is shifted one-half pixel down vertically.
--
--     [C declaration]: @SDL_CHROMA_LOCATION_LEFT@, defined at @SDL3\/SDL_pixels.h 817:5@
pattern SDL_CHROMA_LOCATION_LEFT :: SDL_ChromaLocation
pattern $mSDL_CHROMA_LOCATION_LEFT :: forall {r}. SDL_ChromaLocation -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_CHROMA_LOCATION_LEFT :: SDL_ChromaLocation
SDL_CHROMA_LOCATION_LEFT = SDL_ChromaLocation 1

-- | In JPEG\/JFIF, H.261, and MPEG-1, Cb and Cr are taken at the center of the 2x2 square. In other words, they are offset one-half pixel to the right and one-half pixel down compared to the top-left pixel.
--
--     [C declaration]: @SDL_CHROMA_LOCATION_CENTER@, defined at @SDL3\/SDL_pixels.h 818:5@
pattern SDL_CHROMA_LOCATION_CENTER :: SDL_ChromaLocation
pattern $mSDL_CHROMA_LOCATION_CENTER :: forall {r}. SDL_ChromaLocation -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_CHROMA_LOCATION_CENTER :: SDL_ChromaLocation
SDL_CHROMA_LOCATION_CENTER = SDL_ChromaLocation 2

-- | In HEVC for BT.2020 and BT.2100 content (in particular on Blu-rays), Cb and Cr are sampled at the same location as the group\'s top-left Y pixel (\"co-sited\", \"co-located\").
--
--     [C declaration]: @SDL_CHROMA_LOCATION_TOPLEFT@, defined at @SDL3\/SDL_pixels.h 819:5@
pattern SDL_CHROMA_LOCATION_TOPLEFT :: SDL_ChromaLocation
pattern $mSDL_CHROMA_LOCATION_TOPLEFT :: forall {r}. SDL_ChromaLocation -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_CHROMA_LOCATION_TOPLEFT :: SDL_ChromaLocation
SDL_CHROMA_LOCATION_TOPLEFT = SDL_ChromaLocation 3

-- | Colorspace definitions.
--
--     Since similar colorspaces may vary in their details (matrix, transfer function, etc.), this is not an exhaustive list, but rather a representative sample of the kinds of colorspaces supported in SDL.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_ColorPrimaries', 'SDL_ColorRange', 'SDL_ColorType', 'SDL_MatrixCoefficients', 'SDL_TransferCharacteristics'
--
--     [C declaration]: @enum SDL_Colorspace@, defined at @SDL3\/SDL_pixels.h 1011:14@
newtype SDL_Colorspace = SDL_Colorspace
  { SDL_Colorspace -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x. SDL_Colorspace -> Rep SDL_Colorspace x)
-> (forall x. Rep SDL_Colorspace x -> SDL_Colorspace)
-> Generic SDL_Colorspace
forall x. Rep SDL_Colorspace x -> SDL_Colorspace
forall x. SDL_Colorspace -> Rep SDL_Colorspace x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_Colorspace -> Rep SDL_Colorspace x
from :: forall x. SDL_Colorspace -> Rep SDL_Colorspace x
$cto :: forall x. Rep SDL_Colorspace x -> SDL_Colorspace
to :: forall x. Rep SDL_Colorspace x -> SDL_Colorspace
BG.Generic, SDL_Colorspace -> SDL_Colorspace -> Bool
(SDL_Colorspace -> SDL_Colorspace -> Bool)
-> (SDL_Colorspace -> SDL_Colorspace -> Bool) -> Eq SDL_Colorspace
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_Colorspace -> SDL_Colorspace -> Bool
== :: SDL_Colorspace -> SDL_Colorspace -> Bool
$c/= :: SDL_Colorspace -> SDL_Colorspace -> Bool
/= :: SDL_Colorspace -> SDL_Colorspace -> Bool
Eq, Eq SDL_Colorspace
Eq SDL_Colorspace =>
(SDL_Colorspace -> SDL_Colorspace -> Ordering)
-> (SDL_Colorspace -> SDL_Colorspace -> Bool)
-> (SDL_Colorspace -> SDL_Colorspace -> Bool)
-> (SDL_Colorspace -> SDL_Colorspace -> Bool)
-> (SDL_Colorspace -> SDL_Colorspace -> Bool)
-> (SDL_Colorspace -> SDL_Colorspace -> SDL_Colorspace)
-> (SDL_Colorspace -> SDL_Colorspace -> SDL_Colorspace)
-> Ord SDL_Colorspace
SDL_Colorspace -> SDL_Colorspace -> Bool
SDL_Colorspace -> SDL_Colorspace -> Ordering
SDL_Colorspace -> SDL_Colorspace -> SDL_Colorspace
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_Colorspace -> SDL_Colorspace -> Ordering
compare :: SDL_Colorspace -> SDL_Colorspace -> Ordering
$c< :: SDL_Colorspace -> SDL_Colorspace -> Bool
< :: SDL_Colorspace -> SDL_Colorspace -> Bool
$c<= :: SDL_Colorspace -> SDL_Colorspace -> Bool
<= :: SDL_Colorspace -> SDL_Colorspace -> Bool
$c> :: SDL_Colorspace -> SDL_Colorspace -> Bool
> :: SDL_Colorspace -> SDL_Colorspace -> Bool
$c>= :: SDL_Colorspace -> SDL_Colorspace -> Bool
>= :: SDL_Colorspace -> SDL_Colorspace -> Bool
$cmax :: SDL_Colorspace -> SDL_Colorspace -> SDL_Colorspace
max :: SDL_Colorspace -> SDL_Colorspace -> SDL_Colorspace
$cmin :: SDL_Colorspace -> SDL_Colorspace -> SDL_Colorspace
min :: SDL_Colorspace -> SDL_Colorspace -> SDL_Colorspace
Ord)
  deriving newtype (FFIType SDL_Colorspace -> SDL_Colorspace
SDL_Colorspace -> FFIType SDL_Colorspace
(SDL_Colorspace -> FFIType SDL_Colorspace)
-> (FFIType SDL_Colorspace -> SDL_Colorspace)
-> HasFFIType SDL_Colorspace
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_Colorspace -> FFIType SDL_Colorspace
toFFIType :: SDL_Colorspace -> FFIType SDL_Colorspace
$cfromFFIType :: FFIType SDL_Colorspace -> SDL_Colorspace
fromFFIType :: FFIType SDL_Colorspace -> SDL_Colorspace
BG.HasFFIType)

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

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

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

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

deriving via Marshal.EquivStorable SDL_Colorspace instance BG.Storable SDL_Colorspace

deriving via BG.CUInt instance BG.Prim SDL_Colorspace

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

  toCEnum :: CEnumZ SDL_Colorspace -> SDL_Colorspace
toCEnum = CUInt -> SDL_Colorspace
CEnumZ SDL_Colorspace -> SDL_Colorspace
SDL_Colorspace

  fromCEnum :: SDL_Colorspace -> CEnumZ SDL_Colorspace
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_Colorspace -> DeclaredValues SDL_Colorspace
declaredValues =
    \proxy SDL_Colorspace
_ ->
      [(CEnumZ SDL_Colorspace, NonEmpty String)]
-> DeclaredValues SDL_Colorspace
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_Colorspace
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_UNKNOWN")
        , (CUInt
CEnumZ SDL_Colorspace
301991168, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_SRGB_LINEAR")
        , (CUInt
CEnumZ SDL_Colorspace
301991328, (String
"SDL_COLORSPACE_SRGB" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_COLORSPACE_RGB_DEFAULT"]))
        , (CUInt
CEnumZ SDL_Colorspace
301999616, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_HDR10")
        , (CUInt
CEnumZ SDL_Colorspace
554697761, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_BT709_LIMITED")
        ,
          ( CUInt
CEnumZ SDL_Colorspace
554703046
          , (String
"SDL_COLORSPACE_BT601_LIMITED" String -> [String] -> NonEmpty String
forall a. a -> [a] -> NonEmpty a
BG.:| [String
"SDL_COLORSPACE_YUV_DEFAULT"])
          )
        , (CUInt
CEnumZ SDL_Colorspace
554706441, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_BT2020_LIMITED")
        , (CUInt
CEnumZ SDL_Colorspace
570426566, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_JPEG")
        , (CUInt
CEnumZ SDL_Colorspace
571474977, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_BT709_FULL")
        , (CUInt
CEnumZ SDL_Colorspace
571480262, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_BT601_FULL")
        , (CUInt
CEnumZ SDL_Colorspace
571483657, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_COLORSPACE_BT2020_FULL")
        ]

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

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

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

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

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

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

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

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

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

-- | [C declaration]: @SDL_COLORSPACE_UNKNOWN@, defined at @SDL3\/SDL_pixels.h 1013:5@
pattern SDL_COLORSPACE_UNKNOWN :: SDL_Colorspace
pattern $mSDL_COLORSPACE_UNKNOWN :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_UNKNOWN :: SDL_Colorspace
SDL_COLORSPACE_UNKNOWN = SDL_Colorspace 0

-- | Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
--
--     [C declaration]: @SDL_COLORSPACE_SRGB@, defined at @SDL3\/SDL_pixels.h 1016:5@
pattern SDL_COLORSPACE_SRGB :: SDL_Colorspace
pattern $mSDL_COLORSPACE_SRGB :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_SRGB :: SDL_Colorspace
SDL_COLORSPACE_SRGB = SDL_Colorspace 301991328

-- | Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709
--
--     [C declaration]: @SDL_COLORSPACE_SRGB_LINEAR@, defined at @SDL3\/SDL_pixels.h 1025:5@
pattern SDL_COLORSPACE_SRGB_LINEAR :: SDL_Colorspace
pattern $mSDL_COLORSPACE_SRGB_LINEAR :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_SRGB_LINEAR :: SDL_Colorspace
SDL_COLORSPACE_SRGB_LINEAR = SDL_Colorspace 301991168

-- | Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020
--
--     [C declaration]: @SDL_COLORSPACE_HDR10@, defined at @SDL3\/SDL_pixels.h 1034:5@
pattern SDL_COLORSPACE_HDR10 :: SDL_Colorspace
pattern $mSDL_COLORSPACE_HDR10 :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_HDR10 :: SDL_Colorspace
SDL_COLORSPACE_HDR10 = SDL_Colorspace 301999616

-- | Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601
--
--     [C declaration]: @SDL_COLORSPACE_JPEG@, defined at @SDL3\/SDL_pixels.h 1042:5@
pattern SDL_COLORSPACE_JPEG :: SDL_Colorspace
pattern $mSDL_COLORSPACE_JPEG :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_JPEG :: SDL_Colorspace
SDL_COLORSPACE_JPEG = SDL_Colorspace 570426566

-- | Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601
--
--     [C declaration]: @SDL_COLORSPACE_BT601_LIMITED@, defined at @SDL3\/SDL_pixels.h 1050:5@
pattern SDL_COLORSPACE_BT601_LIMITED :: SDL_Colorspace
pattern $mSDL_COLORSPACE_BT601_LIMITED :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_BT601_LIMITED :: SDL_Colorspace
SDL_COLORSPACE_BT601_LIMITED = SDL_Colorspace 554703046

-- | Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601
--
--     [C declaration]: @SDL_COLORSPACE_BT601_FULL@, defined at @SDL3\/SDL_pixels.h 1058:5@
pattern SDL_COLORSPACE_BT601_FULL :: SDL_Colorspace
pattern $mSDL_COLORSPACE_BT601_FULL :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_BT601_FULL :: SDL_Colorspace
SDL_COLORSPACE_BT601_FULL = SDL_Colorspace 571480262

-- | Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709
--
--     [C declaration]: @SDL_COLORSPACE_BT709_LIMITED@, defined at @SDL3\/SDL_pixels.h 1066:5@
pattern SDL_COLORSPACE_BT709_LIMITED :: SDL_Colorspace
pattern $mSDL_COLORSPACE_BT709_LIMITED :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_BT709_LIMITED :: SDL_Colorspace
SDL_COLORSPACE_BT709_LIMITED = SDL_Colorspace 554697761

-- | Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709
--
--     [C declaration]: @SDL_COLORSPACE_BT709_FULL@, defined at @SDL3\/SDL_pixels.h 1074:5@
pattern SDL_COLORSPACE_BT709_FULL :: SDL_Colorspace
pattern $mSDL_COLORSPACE_BT709_FULL :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_BT709_FULL :: SDL_Colorspace
SDL_COLORSPACE_BT709_FULL = SDL_Colorspace 571474977

-- | Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020
--
--     [C declaration]: @SDL_COLORSPACE_BT2020_LIMITED@, defined at @SDL3\/SDL_pixels.h 1082:5@
pattern SDL_COLORSPACE_BT2020_LIMITED :: SDL_Colorspace
pattern $mSDL_COLORSPACE_BT2020_LIMITED :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_BT2020_LIMITED :: SDL_Colorspace
SDL_COLORSPACE_BT2020_LIMITED = SDL_Colorspace 554706441

-- | Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020
--
--     [C declaration]: @SDL_COLORSPACE_BT2020_FULL@, defined at @SDL3\/SDL_pixels.h 1090:5@
pattern SDL_COLORSPACE_BT2020_FULL :: SDL_Colorspace
pattern $mSDL_COLORSPACE_BT2020_FULL :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_BT2020_FULL :: SDL_Colorspace
SDL_COLORSPACE_BT2020_FULL = SDL_Colorspace 571483657

-- | The default colorspace for RGB surfaces if no colorspace is specified
--
--     [C declaration]: @SDL_COLORSPACE_RGB_DEFAULT@, defined at @SDL3\/SDL_pixels.h 1098:5@
pattern SDL_COLORSPACE_RGB_DEFAULT :: SDL_Colorspace
pattern $mSDL_COLORSPACE_RGB_DEFAULT :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_RGB_DEFAULT :: SDL_Colorspace
SDL_COLORSPACE_RGB_DEFAULT = SDL_Colorspace 301991328

-- | The default colorspace for YUV surfaces if no colorspace is specified
--
--     [C declaration]: @SDL_COLORSPACE_YUV_DEFAULT@, defined at @SDL3\/SDL_pixels.h 1099:5@
pattern SDL_COLORSPACE_YUV_DEFAULT :: SDL_Colorspace
pattern $mSDL_COLORSPACE_YUV_DEFAULT :: forall {r}. SDL_Colorspace -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_COLORSPACE_YUV_DEFAULT :: SDL_Colorspace
SDL_COLORSPACE_YUV_DEFAULT = SDL_Colorspace 554703046

-- | A structure that represents a color as RGBA components.
--
--     The bits of this structure can be directly reinterpreted as an integer-packed color which uses the SDL_PIXELFORMAT_RGBA32 format (SDL_PIXELFORMAT_ABGR8888 on little-endian systems and SDL_PIXELFORMAT_RGBA8888 on big-endian systems).
--
--     @since 3.2.0
--
--     [C declaration]: @struct SDL_Color@, defined at @SDL3\/SDL_pixels.h 1112:16@
data SDL_Color = SDL_Color
  { SDL_Color -> Uint8
r :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @r@, defined at @SDL3\/SDL_pixels.h 1114:11@
  , SDL_Color -> Uint8
g :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @g@, defined at @SDL3\/SDL_pixels.h 1115:11@
  , SDL_Color -> Uint8
b :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @b@, defined at @SDL3\/SDL_pixels.h 1116:11@
  , SDL_Color -> Uint8
a :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @a@, defined at @SDL3\/SDL_pixels.h 1117:11@
  }
  deriving stock ((forall x. SDL_Color -> Rep SDL_Color x)
-> (forall x. Rep SDL_Color x -> SDL_Color) -> Generic SDL_Color
forall x. Rep SDL_Color x -> SDL_Color
forall x. SDL_Color -> Rep SDL_Color x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_Color -> Rep SDL_Color x
from :: forall x. SDL_Color -> Rep SDL_Color x
$cto :: forall x. Rep SDL_Color x -> SDL_Color
to :: forall x. Rep SDL_Color x -> SDL_Color
BG.Generic, SDL_Color -> SDL_Color -> Bool
(SDL_Color -> SDL_Color -> Bool)
-> (SDL_Color -> SDL_Color -> Bool) -> Eq SDL_Color
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_Color -> SDL_Color -> Bool
== :: SDL_Color -> SDL_Color -> Bool
$c/= :: SDL_Color -> SDL_Color -> Bool
/= :: SDL_Color -> SDL_Color -> Bool
Eq, Int -> SDL_Color -> ShowS
[SDL_Color] -> ShowS
SDL_Color -> String
(Int -> SDL_Color -> ShowS)
-> (SDL_Color -> String)
-> ([SDL_Color] -> ShowS)
-> Show SDL_Color
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_Color -> ShowS
showsPrec :: Int -> SDL_Color -> ShowS
$cshow :: SDL_Color -> String
show :: SDL_Color -> String
$cshowList :: [SDL_Color] -> ShowS
showList :: [SDL_Color] -> ShowS
Show)

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

  staticAlignment :: Proxy SDL_Color -> Int
staticAlignment = \Proxy SDL_Color
_ -> (Int
1 :: Int)

instance Marshal.ReadRaw SDL_Color where
  readRaw :: Ptr SDL_Color -> IO SDL_Color
readRaw =
    \Ptr SDL_Color
ptr0 ->
      (Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_Color)
-> IO (Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_Color)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_Color
SDL_Color
        IO (Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_Color)
-> IO Uint8 -> IO (Uint8 -> Uint8 -> Uint8 -> SDL_Color)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "r" -> Ptr SDL_Color -> IO (CFieldType SDL_Color "r")
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 @"r") Ptr SDL_Color
ptr0
        IO (Uint8 -> Uint8 -> Uint8 -> SDL_Color)
-> IO Uint8 -> IO (Uint8 -> Uint8 -> SDL_Color)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "g" -> Ptr SDL_Color -> IO (CFieldType SDL_Color "g")
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 @"g") Ptr SDL_Color
ptr0
        IO (Uint8 -> Uint8 -> SDL_Color)
-> IO Uint8 -> IO (Uint8 -> SDL_Color)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "b" -> Ptr SDL_Color -> IO (CFieldType SDL_Color "b")
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 @"b") Ptr SDL_Color
ptr0
        IO (Uint8 -> SDL_Color) -> IO Uint8 -> IO SDL_Color
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "a" -> Ptr SDL_Color -> IO (CFieldType SDL_Color "a")
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 @"a") Ptr SDL_Color
ptr0

instance Marshal.WriteRaw SDL_Color where
  writeRaw :: Ptr SDL_Color -> SDL_Color -> IO ()
writeRaw =
    \Ptr SDL_Color
ptr0 ->
      \SDL_Color
s1 ->
        case SDL_Color
s1 of
          SDL_Color Uint8
r2 Uint8
g3 Uint8
b4 Uint8
a5 ->
            Proxy "r" -> Ptr SDL_Color -> CFieldType SDL_Color "r" -> 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 @"r") Ptr SDL_Color
ptr0 CFieldType SDL_Color "r"
Uint8
r2
              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 "g" -> Ptr SDL_Color -> CFieldType SDL_Color "g" -> 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 @"g") Ptr SDL_Color
ptr0 CFieldType SDL_Color "g"
Uint8
g3
              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 "b" -> Ptr SDL_Color -> CFieldType SDL_Color "b" -> 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 @"b") Ptr SDL_Color
ptr0 CFieldType SDL_Color "b"
Uint8
b4
              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 "a" -> Ptr SDL_Color -> CFieldType SDL_Color "a" -> 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 @"a") Ptr SDL_Color
ptr0 CFieldType SDL_Color "a"
Uint8
a5

deriving via Marshal.EquivStorable SDL_Color instance BG.Storable SDL_Color

deriving via Struct.IsStructViaReadRaw SDL_Color instance Struct.IsStruct SDL_Color

-- | [C declaration]: @r@, defined at @SDL3\/SDL_pixels.h 1114:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "r" SDL_Color ty
  where
  hasField :: SDL_Color -> (ty -> SDL_Color, ty)
hasField =
    \SDL_Color
x0 ->
      ( \ty
y1 ->
          SDL_Color
            { r :: Uint8
r = ty
Uint8
y1
            , g :: Uint8
g = 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 @"g" SDL_Color
x0
            , b :: Uint8
b = 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 @"b" SDL_Color
x0
            , a :: Uint8
a = 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 @"a" SDL_Color
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 @"r" SDL_Color
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "r" (BG.Ptr SDL_Color) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Color -> Ptr ty
getField = Proxy "r" -> Ptr SDL_Color -> Ptr (CFieldType SDL_Color "r")
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 @"r")

instance HasCField.HasCField SDL_Color "r" where
  type
    CFieldType SDL_Color "r" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_Color -> Proxy# "r" -> Int
offset# = \Proxy# SDL_Color
_ -> \Proxy# "r"
_ -> Int
0

-- | [C declaration]: @g@, defined at @SDL3\/SDL_pixels.h 1115:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "g" SDL_Color ty
  where
  hasField :: SDL_Color -> (ty -> SDL_Color, ty)
hasField =
    \SDL_Color
x0 ->
      ( \ty
y1 ->
          SDL_Color
            { g :: Uint8
g = ty
Uint8
y1
            , r :: Uint8
r = 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 @"r" SDL_Color
x0
            , b :: Uint8
b = 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 @"b" SDL_Color
x0
            , a :: Uint8
a = 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 @"a" SDL_Color
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 @"g" SDL_Color
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "g" (BG.Ptr SDL_Color) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Color -> Ptr ty
getField = Proxy "g" -> Ptr SDL_Color -> Ptr (CFieldType SDL_Color "g")
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 @"g")

instance HasCField.HasCField SDL_Color "g" where
  type
    CFieldType SDL_Color "g" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_Color -> Proxy# "g" -> Int
offset# = \Proxy# SDL_Color
_ -> \Proxy# "g"
_ -> Int
1

-- | [C declaration]: @b@, defined at @SDL3\/SDL_pixels.h 1116:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "b" SDL_Color ty
  where
  hasField :: SDL_Color -> (ty -> SDL_Color, ty)
hasField =
    \SDL_Color
x0 ->
      ( \ty
y1 ->
          SDL_Color
            { b :: Uint8
b = ty
Uint8
y1
            , r :: Uint8
r = 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 @"r" SDL_Color
x0
            , g :: Uint8
g = 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 @"g" SDL_Color
x0
            , a :: Uint8
a = 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 @"a" SDL_Color
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 @"b" SDL_Color
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "b" (BG.Ptr SDL_Color) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Color -> Ptr ty
getField = Proxy "b" -> Ptr SDL_Color -> Ptr (CFieldType SDL_Color "b")
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 @"b")

instance HasCField.HasCField SDL_Color "b" where
  type
    CFieldType SDL_Color "b" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_Color -> Proxy# "b" -> Int
offset# = \Proxy# SDL_Color
_ -> \Proxy# "b"
_ -> Int
2

-- | [C declaration]: @a@, defined at @SDL3\/SDL_pixels.h 1117:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "a" SDL_Color ty
  where
  hasField :: SDL_Color -> (ty -> SDL_Color, ty)
hasField =
    \SDL_Color
x0 ->
      ( \ty
y1 ->
          SDL_Color
            { a :: Uint8
a = ty
Uint8
y1
            , r :: Uint8
r = 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 @"r" SDL_Color
x0
            , g :: Uint8
g = 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 @"g" SDL_Color
x0
            , b :: Uint8
b = 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 @"b" SDL_Color
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 @"a" SDL_Color
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "a" (BG.Ptr SDL_Color) (BG.Ptr ty)
  where
  getField :: Ptr SDL_Color -> Ptr ty
getField = Proxy "a" -> Ptr SDL_Color -> Ptr (CFieldType SDL_Color "a")
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 @"a")

instance HasCField.HasCField SDL_Color "a" where
  type
    CFieldType SDL_Color "a" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_Color -> Proxy# "a" -> Int
offset# = \Proxy# SDL_Color
_ -> \Proxy# "a"
_ -> Int
3

-- | The bits of this structure can be directly reinterpreted as a float-packed color which uses the SDL_PIXELFORMAT_RGBA128_FLOAT format
--
--     @since 3.2.0
--
--     [C declaration]: @struct SDL_FColor@, defined at @SDL3\/SDL_pixels.h 1126:16@
data SDL_FColor = SDL_FColor
  { SDL_FColor -> CFloat
r :: BG.CFloat
  -- ^ [C declaration]: @r@, defined at @SDL3\/SDL_pixels.h 1128:11@
  , SDL_FColor -> CFloat
g :: BG.CFloat
  -- ^ [C declaration]: @g@, defined at @SDL3\/SDL_pixels.h 1129:11@
  , SDL_FColor -> CFloat
b :: BG.CFloat
  -- ^ [C declaration]: @b@, defined at @SDL3\/SDL_pixels.h 1130:11@
  , SDL_FColor -> CFloat
a :: BG.CFloat
  -- ^ [C declaration]: @a@, defined at @SDL3\/SDL_pixels.h 1131:11@
  }
  deriving stock ((forall x. SDL_FColor -> Rep SDL_FColor x)
-> (forall x. Rep SDL_FColor x -> SDL_FColor) -> Generic SDL_FColor
forall x. Rep SDL_FColor x -> SDL_FColor
forall x. SDL_FColor -> Rep SDL_FColor x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_FColor -> Rep SDL_FColor x
from :: forall x. SDL_FColor -> Rep SDL_FColor x
$cto :: forall x. Rep SDL_FColor x -> SDL_FColor
to :: forall x. Rep SDL_FColor x -> SDL_FColor
BG.Generic, SDL_FColor -> SDL_FColor -> Bool
(SDL_FColor -> SDL_FColor -> Bool)
-> (SDL_FColor -> SDL_FColor -> Bool) -> Eq SDL_FColor
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_FColor -> SDL_FColor -> Bool
== :: SDL_FColor -> SDL_FColor -> Bool
$c/= :: SDL_FColor -> SDL_FColor -> Bool
/= :: SDL_FColor -> SDL_FColor -> Bool
Eq, Int -> SDL_FColor -> ShowS
[SDL_FColor] -> ShowS
SDL_FColor -> String
(Int -> SDL_FColor -> ShowS)
-> (SDL_FColor -> String)
-> ([SDL_FColor] -> ShowS)
-> Show SDL_FColor
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_FColor -> ShowS
showsPrec :: Int -> SDL_FColor -> ShowS
$cshow :: SDL_FColor -> String
show :: SDL_FColor -> String
$cshowList :: [SDL_FColor] -> ShowS
showList :: [SDL_FColor] -> ShowS
Show)

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

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

instance Marshal.ReadRaw SDL_FColor where
  readRaw :: Ptr SDL_FColor -> IO SDL_FColor
readRaw =
    \Ptr SDL_FColor
ptr0 ->
      (CFloat -> CFloat -> CFloat -> CFloat -> SDL_FColor)
-> IO (CFloat -> CFloat -> CFloat -> CFloat -> SDL_FColor)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CFloat -> CFloat -> CFloat -> CFloat -> SDL_FColor
SDL_FColor
        IO (CFloat -> CFloat -> CFloat -> CFloat -> SDL_FColor)
-> IO CFloat -> IO (CFloat -> CFloat -> CFloat -> SDL_FColor)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "r" -> Ptr SDL_FColor -> IO (CFieldType SDL_FColor "r")
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 @"r") Ptr SDL_FColor
ptr0
        IO (CFloat -> CFloat -> CFloat -> SDL_FColor)
-> IO CFloat -> IO (CFloat -> CFloat -> SDL_FColor)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "g" -> Ptr SDL_FColor -> IO (CFieldType SDL_FColor "g")
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 @"g") Ptr SDL_FColor
ptr0
        IO (CFloat -> CFloat -> SDL_FColor)
-> IO CFloat -> IO (CFloat -> SDL_FColor)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "b" -> Ptr SDL_FColor -> IO (CFieldType SDL_FColor "b")
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 @"b") Ptr SDL_FColor
ptr0
        IO (CFloat -> SDL_FColor) -> IO CFloat -> IO SDL_FColor
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "a" -> Ptr SDL_FColor -> IO (CFieldType SDL_FColor "a")
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 @"a") Ptr SDL_FColor
ptr0

instance Marshal.WriteRaw SDL_FColor where
  writeRaw :: Ptr SDL_FColor -> SDL_FColor -> IO ()
writeRaw =
    \Ptr SDL_FColor
ptr0 ->
      \SDL_FColor
s1 ->
        case SDL_FColor
s1 of
          SDL_FColor CFloat
r2 CFloat
g3 CFloat
b4 CFloat
a5 ->
            Proxy "r" -> Ptr SDL_FColor -> CFieldType SDL_FColor "r" -> 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 @"r") Ptr SDL_FColor
ptr0 CFloat
CFieldType SDL_FColor "r"
r2
              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 "g" -> Ptr SDL_FColor -> CFieldType SDL_FColor "g" -> 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 @"g") Ptr SDL_FColor
ptr0 CFloat
CFieldType SDL_FColor "g"
g3
              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 "b" -> Ptr SDL_FColor -> CFieldType SDL_FColor "b" -> 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 @"b") Ptr SDL_FColor
ptr0 CFloat
CFieldType SDL_FColor "b"
b4
              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 "a" -> Ptr SDL_FColor -> CFieldType SDL_FColor "a" -> 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 @"a") Ptr SDL_FColor
ptr0 CFloat
CFieldType SDL_FColor "a"
a5

deriving via Marshal.EquivStorable SDL_FColor instance BG.Storable SDL_FColor

deriving via Struct.IsStructViaReadRaw SDL_FColor instance Struct.IsStruct SDL_FColor

-- | [C declaration]: @r@, defined at @SDL3\/SDL_pixels.h 1128:11@
instance (ty ~ BG.CFloat) => BG.CompatHasField.HasField "r" SDL_FColor ty where
  hasField :: SDL_FColor -> (ty -> SDL_FColor, ty)
hasField =
    \SDL_FColor
x0 ->
      ( \ty
y1 ->
          SDL_FColor
            { r :: CFloat
r = ty
CFloat
y1
            , g :: CFloat
g = 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 @"g" SDL_FColor
x0
            , b :: CFloat
b = 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 @"b" SDL_FColor
x0
            , a :: CFloat
a = 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 @"a" SDL_FColor
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 @"r" SDL_FColor
x0
      )

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

instance HasCField.HasCField SDL_FColor "r" where
  type CFieldType SDL_FColor "r" = BG.CFloat

  offset# :: Proxy# SDL_FColor -> Proxy# "r" -> Int
offset# = \Proxy# SDL_FColor
_ -> \Proxy# "r"
_ -> Int
0

-- | [C declaration]: @g@, defined at @SDL3\/SDL_pixels.h 1129:11@
instance (ty ~ BG.CFloat) => BG.CompatHasField.HasField "g" SDL_FColor ty where
  hasField :: SDL_FColor -> (ty -> SDL_FColor, ty)
hasField =
    \SDL_FColor
x0 ->
      ( \ty
y1 ->
          SDL_FColor
            { g :: CFloat
g = ty
CFloat
y1
            , r :: CFloat
r = 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 @"r" SDL_FColor
x0
            , b :: CFloat
b = 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 @"b" SDL_FColor
x0
            , a :: CFloat
a = 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 @"a" SDL_FColor
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 @"g" SDL_FColor
x0
      )

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

instance HasCField.HasCField SDL_FColor "g" where
  type CFieldType SDL_FColor "g" = BG.CFloat

  offset# :: Proxy# SDL_FColor -> Proxy# "g" -> Int
offset# = \Proxy# SDL_FColor
_ -> \Proxy# "g"
_ -> Int
4

-- | [C declaration]: @b@, defined at @SDL3\/SDL_pixels.h 1130:11@
instance (ty ~ BG.CFloat) => BG.CompatHasField.HasField "b" SDL_FColor ty where
  hasField :: SDL_FColor -> (ty -> SDL_FColor, ty)
hasField =
    \SDL_FColor
x0 ->
      ( \ty
y1 ->
          SDL_FColor
            { b :: CFloat
b = ty
CFloat
y1
            , r :: CFloat
r = 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 @"r" SDL_FColor
x0
            , g :: CFloat
g = 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 @"g" SDL_FColor
x0
            , a :: CFloat
a = 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 @"a" SDL_FColor
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 @"b" SDL_FColor
x0
      )

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

instance HasCField.HasCField SDL_FColor "b" where
  type CFieldType SDL_FColor "b" = BG.CFloat

  offset# :: Proxy# SDL_FColor -> Proxy# "b" -> Int
offset# = \Proxy# SDL_FColor
_ -> \Proxy# "b"
_ -> Int
8

-- | [C declaration]: @a@, defined at @SDL3\/SDL_pixels.h 1131:11@
instance (ty ~ BG.CFloat) => BG.CompatHasField.HasField "a" SDL_FColor ty where
  hasField :: SDL_FColor -> (ty -> SDL_FColor, ty)
hasField =
    \SDL_FColor
x0 ->
      ( \ty
y1 ->
          SDL_FColor
            { a :: CFloat
a = ty
CFloat
y1
            , r :: CFloat
r = 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 @"r" SDL_FColor
x0
            , g :: CFloat
g = 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 @"g" SDL_FColor
x0
            , b :: CFloat
b = 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 @"b" SDL_FColor
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 @"a" SDL_FColor
x0
      )

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

instance HasCField.HasCField SDL_FColor "a" where
  type CFieldType SDL_FColor "a" = BG.CFloat

  offset# :: Proxy# SDL_FColor -> Proxy# "a" -> Int
offset# = \Proxy# SDL_FColor
_ -> \Proxy# "a"
_ -> Int
12

-- | A set of indexed colors representing a palette.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_SetPaletteColors'
--
--     [C declaration]: @struct SDL_Palette@, defined at @SDL3\/SDL_pixels.h 1141:16@
data SDL_Palette = SDL_Palette
  { SDL_Palette -> CInt
ncolors :: BG.CInt
  -- ^ number of elements in @colors@.
  --
  --          [C declaration]: @ncolors@, defined at @SDL3\/SDL_pixels.h 1143:9@
  , SDL_Palette -> Ptr SDL_Color
colors :: BG.Ptr SDL_Color
  -- ^ an array of colors, @ncolors@ long.
  --
  --          [C declaration]: @colors@, defined at @SDL3\/SDL_pixels.h 1144:16@
  , SDL_Palette -> Uint32
version :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ internal use only, do not touch.
  --
  --          [C declaration]: @version@, defined at @SDL3\/SDL_pixels.h 1145:12@
  , SDL_Palette -> CInt
refcount :: BG.CInt
  -- ^ internal use only, do not touch.
  --
  --          [C declaration]: @refcount@, defined at @SDL3\/SDL_pixels.h 1146:9@
  }
  deriving stock ((forall x. SDL_Palette -> Rep SDL_Palette x)
-> (forall x. Rep SDL_Palette x -> SDL_Palette)
-> Generic SDL_Palette
forall x. Rep SDL_Palette x -> SDL_Palette
forall x. SDL_Palette -> Rep SDL_Palette x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_Palette -> Rep SDL_Palette x
from :: forall x. SDL_Palette -> Rep SDL_Palette x
$cto :: forall x. Rep SDL_Palette x -> SDL_Palette
to :: forall x. Rep SDL_Palette x -> SDL_Palette
BG.Generic, SDL_Palette -> SDL_Palette -> Bool
(SDL_Palette -> SDL_Palette -> Bool)
-> (SDL_Palette -> SDL_Palette -> Bool) -> Eq SDL_Palette
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_Palette -> SDL_Palette -> Bool
== :: SDL_Palette -> SDL_Palette -> Bool
$c/= :: SDL_Palette -> SDL_Palette -> Bool
/= :: SDL_Palette -> SDL_Palette -> Bool
Eq, Int -> SDL_Palette -> ShowS
[SDL_Palette] -> ShowS
SDL_Palette -> String
(Int -> SDL_Palette -> ShowS)
-> (SDL_Palette -> String)
-> ([SDL_Palette] -> ShowS)
-> Show SDL_Palette
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_Palette -> ShowS
showsPrec :: Int -> SDL_Palette -> ShowS
$cshow :: SDL_Palette -> String
show :: SDL_Palette -> String
$cshowList :: [SDL_Palette] -> ShowS
showList :: [SDL_Palette] -> ShowS
Show)

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

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

instance Marshal.ReadRaw SDL_Palette where
  readRaw :: Ptr SDL_Palette -> IO SDL_Palette
readRaw =
    \Ptr SDL_Palette
ptr0 ->
      (CInt -> Ptr SDL_Color -> Uint32 -> CInt -> SDL_Palette)
-> IO (CInt -> Ptr SDL_Color -> Uint32 -> CInt -> SDL_Palette)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CInt -> Ptr SDL_Color -> Uint32 -> CInt -> SDL_Palette
SDL_Palette
        IO (CInt -> Ptr SDL_Color -> Uint32 -> CInt -> SDL_Palette)
-> IO CInt -> IO (Ptr SDL_Color -> Uint32 -> CInt -> SDL_Palette)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "ncolors"
-> Ptr SDL_Palette -> IO (CFieldType SDL_Palette "ncolors")
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 @"ncolors") Ptr SDL_Palette
ptr0
        IO (Ptr SDL_Color -> Uint32 -> CInt -> SDL_Palette)
-> IO (Ptr SDL_Color) -> IO (Uint32 -> CInt -> SDL_Palette)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "colors"
-> Ptr SDL_Palette -> IO (CFieldType SDL_Palette "colors")
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 @"colors") Ptr SDL_Palette
ptr0
        IO (Uint32 -> CInt -> SDL_Palette)
-> IO Uint32 -> IO (CInt -> SDL_Palette)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "version"
-> Ptr SDL_Palette -> IO (CFieldType SDL_Palette "version")
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 @"version") Ptr SDL_Palette
ptr0
        IO (CInt -> SDL_Palette) -> IO CInt -> IO SDL_Palette
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_Palette -> IO (CFieldType SDL_Palette "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_Palette
ptr0

instance Marshal.WriteRaw SDL_Palette where
  writeRaw :: Ptr SDL_Palette -> SDL_Palette -> IO ()
writeRaw =
    \Ptr SDL_Palette
ptr0 ->
      \SDL_Palette
s1 ->
        case SDL_Palette
s1 of
          SDL_Palette CInt
ncolors2 Ptr SDL_Color
colors3 Uint32
version4 CInt
refcount5 ->
            Proxy "ncolors"
-> Ptr SDL_Palette -> CFieldType SDL_Palette "ncolors" -> 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 @"ncolors") Ptr SDL_Palette
ptr0 CInt
CFieldType SDL_Palette "ncolors"
ncolors2
              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 "colors"
-> Ptr SDL_Palette -> CFieldType SDL_Palette "colors" -> 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 @"colors") Ptr SDL_Palette
ptr0 Ptr SDL_Color
CFieldType SDL_Palette "colors"
colors3
              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 "version"
-> Ptr SDL_Palette -> CFieldType SDL_Palette "version" -> 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 @"version") Ptr SDL_Palette
ptr0 CFieldType SDL_Palette "version"
Uint32
version4
              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_Palette -> CFieldType SDL_Palette "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_Palette
ptr0 CInt
CFieldType SDL_Palette "refcount"
refcount5

deriving via Marshal.EquivStorable SDL_Palette instance BG.Storable SDL_Palette

deriving via Struct.IsStructViaReadRaw SDL_Palette instance Struct.IsStruct SDL_Palette

-- | number of elements in @colors@.
--
--     [C declaration]: @ncolors@, defined at @SDL3\/SDL_pixels.h 1143:9@
instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "ncolors" SDL_Palette ty
  where
  hasField :: SDL_Palette -> (ty -> SDL_Palette, ty)
hasField =
    \SDL_Palette
x0 ->
      ( \ty
y1 ->
          SDL_Palette
            { ncolors :: CInt
ncolors = ty
CInt
y1
            , colors :: Ptr SDL_Color
colors = 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 @"colors" SDL_Palette
x0
            , version :: Uint32
version = 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 @"version" SDL_Palette
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_Palette
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 @"ncolors" SDL_Palette
x0
      )

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

instance HasCField.HasCField SDL_Palette "ncolors" where
  type CFieldType SDL_Palette "ncolors" = BG.CInt

  offset# :: Proxy# SDL_Palette -> Proxy# "ncolors" -> Int
offset# = \Proxy# SDL_Palette
_ -> \Proxy# "ncolors"
_ -> Int
0

-- | an array of colors, @ncolors@ long.
--
--     [C declaration]: @colors@, defined at @SDL3\/SDL_pixels.h 1144:16@
instance
  (ty ~ BG.Ptr SDL_Color)
  => BG.CompatHasField.HasField "colors" SDL_Palette ty
  where
  hasField :: SDL_Palette -> (ty -> SDL_Palette, ty)
hasField =
    \SDL_Palette
x0 ->
      ( \ty
y1 ->
          SDL_Palette
            { colors :: Ptr SDL_Color
colors = ty
Ptr SDL_Color
y1
            , ncolors :: CInt
ncolors = 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 @"ncolors" SDL_Palette
x0
            , version :: Uint32
version = 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 @"version" SDL_Palette
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_Palette
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 @"colors" SDL_Palette
x0
      )

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

instance HasCField.HasCField SDL_Palette "colors" where
  type
    CFieldType SDL_Palette "colors" =
      BG.Ptr SDL_Color

  offset# :: Proxy# SDL_Palette -> Proxy# "colors" -> Int
offset# = \Proxy# SDL_Palette
_ -> \Proxy# "colors"
_ -> Int
8

-- | internal use only, do not touch.
--
--     [C declaration]: @version@, defined at @SDL3\/SDL_pixels.h 1145:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "version" SDL_Palette ty
  where
  hasField :: SDL_Palette -> (ty -> SDL_Palette, ty)
hasField =
    \SDL_Palette
x0 ->
      ( \ty
y1 ->
          SDL_Palette
            { version :: Uint32
version = ty
Uint32
y1
            , ncolors :: CInt
ncolors = 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 @"ncolors" SDL_Palette
x0
            , colors :: Ptr SDL_Color
colors = 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 @"colors" SDL_Palette
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_Palette
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 @"version" SDL_Palette
x0
      )

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

instance HasCField.HasCField SDL_Palette "version" where
  type
    CFieldType SDL_Palette "version" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_Palette -> Proxy# "version" -> Int
offset# = \Proxy# SDL_Palette
_ -> \Proxy# "version"
_ -> Int
16

-- | internal use only, do not touch.
--
--     [C declaration]: @refcount@, defined at @SDL3\/SDL_pixels.h 1146:9@
instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "refcount" SDL_Palette ty
  where
  hasField :: SDL_Palette -> (ty -> SDL_Palette, ty)
hasField =
    \SDL_Palette
x0 ->
      ( \ty
y1 ->
          SDL_Palette
            { refcount :: CInt
refcount = ty
CInt
y1
            , ncolors :: CInt
ncolors = 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 @"ncolors" SDL_Palette
x0
            , colors :: Ptr SDL_Color
colors = 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 @"colors" SDL_Palette
x0
            , version :: Uint32
version = 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 @"version" SDL_Palette
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_Palette
x0
      )

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

  offset# :: Proxy# SDL_Palette -> Proxy# "refcount" -> Int
offset# = \Proxy# SDL_Palette
_ -> \Proxy# "refcount"
_ -> Int
20

-- | Details about the format of a pixel.
--
--     @since 3.2.0
--
--     [C declaration]: @struct SDL_PixelFormatDetails@, defined at @SDL3\/SDL_pixels.h 1154:16@
data SDL_PixelFormatDetails = SDL_PixelFormatDetails
  { SDL_PixelFormatDetails -> SDL_PixelFormat
format :: SDL_PixelFormat
  -- ^ [C declaration]: @format@, defined at @SDL3\/SDL_pixels.h 1156:21@
  , SDL_PixelFormatDetails -> Uint8
bits_per_pixel :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @bits_per_pixel@, defined at @SDL3\/SDL_pixels.h 1157:11@
  , SDL_PixelFormatDetails -> Uint8
bytes_per_pixel :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @bytes_per_pixel@, defined at @SDL3\/SDL_pixels.h 1158:11@
  , SDL_PixelFormatDetails -> ConstantArray 2 Uint8
padding :: CA.ConstantArray 2 SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @padding@, defined at @SDL3\/SDL_pixels.h 1159:11@
  , SDL_PixelFormatDetails -> Uint32
rmask :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ [C declaration]: @Rmask@, defined at @SDL3\/SDL_pixels.h 1160:12@
  , SDL_PixelFormatDetails -> Uint32
gmask :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ [C declaration]: @Gmask@, defined at @SDL3\/SDL_pixels.h 1161:12@
  , SDL_PixelFormatDetails -> Uint32
bmask :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ [C declaration]: @Bmask@, defined at @SDL3\/SDL_pixels.h 1162:12@
  , SDL_PixelFormatDetails -> Uint32
amask :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ [C declaration]: @Amask@, defined at @SDL3\/SDL_pixels.h 1163:12@
  , SDL_PixelFormatDetails -> Uint8
rbits :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Rbits@, defined at @SDL3\/SDL_pixels.h 1164:11@
  , SDL_PixelFormatDetails -> Uint8
gbits :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Gbits@, defined at @SDL3\/SDL_pixels.h 1165:11@
  , SDL_PixelFormatDetails -> Uint8
bbits :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Bbits@, defined at @SDL3\/SDL_pixels.h 1166:11@
  , SDL_PixelFormatDetails -> Uint8
abits :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Abits@, defined at @SDL3\/SDL_pixels.h 1167:11@
  , SDL_PixelFormatDetails -> Uint8
rshift :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Rshift@, defined at @SDL3\/SDL_pixels.h 1168:11@
  , SDL_PixelFormatDetails -> Uint8
gshift :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Gshift@, defined at @SDL3\/SDL_pixels.h 1169:11@
  , SDL_PixelFormatDetails -> Uint8
bshift :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Bshift@, defined at @SDL3\/SDL_pixels.h 1170:11@
  , SDL_PixelFormatDetails -> Uint8
ashift :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @Ashift@, defined at @SDL3\/SDL_pixels.h 1171:11@
  }
  deriving stock ((forall x. SDL_PixelFormatDetails -> Rep SDL_PixelFormatDetails x)
-> (forall x.
    Rep SDL_PixelFormatDetails x -> SDL_PixelFormatDetails)
-> Generic SDL_PixelFormatDetails
forall x. Rep SDL_PixelFormatDetails x -> SDL_PixelFormatDetails
forall x. SDL_PixelFormatDetails -> Rep SDL_PixelFormatDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_PixelFormatDetails -> Rep SDL_PixelFormatDetails x
from :: forall x. SDL_PixelFormatDetails -> Rep SDL_PixelFormatDetails x
$cto :: forall x. Rep SDL_PixelFormatDetails x -> SDL_PixelFormatDetails
to :: forall x. Rep SDL_PixelFormatDetails x -> SDL_PixelFormatDetails
BG.Generic, SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> Bool
(SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> Bool)
-> (SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> Bool)
-> Eq SDL_PixelFormatDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> Bool
== :: SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> Bool
$c/= :: SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> Bool
/= :: SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> Bool
Eq, Int -> SDL_PixelFormatDetails -> ShowS
[SDL_PixelFormatDetails] -> ShowS
SDL_PixelFormatDetails -> String
(Int -> SDL_PixelFormatDetails -> ShowS)
-> (SDL_PixelFormatDetails -> String)
-> ([SDL_PixelFormatDetails] -> ShowS)
-> Show SDL_PixelFormatDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_PixelFormatDetails -> ShowS
showsPrec :: Int -> SDL_PixelFormatDetails -> ShowS
$cshow :: SDL_PixelFormatDetails -> String
show :: SDL_PixelFormatDetails -> String
$cshowList :: [SDL_PixelFormatDetails] -> ShowS
showList :: [SDL_PixelFormatDetails] -> ShowS
Show)

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

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

instance Marshal.ReadRaw SDL_PixelFormatDetails where
  readRaw :: Ptr SDL_PixelFormatDetails -> IO SDL_PixelFormatDetails
readRaw =
    \Ptr SDL_PixelFormatDetails
ptr0 ->
      (SDL_PixelFormat
 -> Uint8
 -> Uint8
 -> ConstantArray 2 Uint8
 -> Uint32
 -> Uint32
 -> Uint32
 -> Uint32
 -> Uint8
 -> Uint8
 -> Uint8
 -> Uint8
 -> Uint8
 -> Uint8
 -> Uint8
 -> Uint8
 -> SDL_PixelFormatDetails)
-> IO
     (SDL_PixelFormat
      -> Uint8
      -> Uint8
      -> ConstantArray 2 Uint8
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_PixelFormat
-> Uint8
-> Uint8
-> ConstantArray 2 Uint8
-> Uint32
-> Uint32
-> Uint32
-> Uint32
-> Uint8
-> Uint8
-> Uint8
-> Uint8
-> Uint8
-> Uint8
-> Uint8
-> Uint8
-> SDL_PixelFormatDetails
SDL_PixelFormatDetails
        IO
  (SDL_PixelFormat
   -> Uint8
   -> Uint8
   -> ConstantArray 2 Uint8
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO SDL_PixelFormat
-> IO
     (Uint8
      -> Uint8
      -> ConstantArray 2 Uint8
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
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_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "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_PixelFormatDetails
ptr0
        IO
  (Uint8
   -> Uint8
   -> ConstantArray 2 Uint8
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint8
-> IO
     (Uint8
      -> ConstantArray 2 Uint8
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "bits_per_pixel"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "bits_per_pixel")
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 @"bits_per_pixel") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint8
   -> ConstantArray 2 Uint8
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint8
-> IO
     (ConstantArray 2 Uint8
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "bytes_per_pixel"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "bytes_per_pixel")
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 @"bytes_per_pixel") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (ConstantArray 2 Uint8
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO (ConstantArray 2 Uint8)
-> IO
     (Uint32
      -> Uint32
      -> Uint32
      -> Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "padding"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "padding")
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 @"padding") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint32
   -> Uint32
   -> Uint32
   -> Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint32
-> IO
     (Uint32
      -> Uint32
      -> Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "rmask"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "rmask")
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 @"rmask") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint32
   -> Uint32
   -> Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint32
-> IO
     (Uint32
      -> Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "gmask"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "gmask")
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 @"gmask") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint32
   -> Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint32
-> IO
     (Uint32
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "bmask"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "bmask")
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 @"bmask") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint32
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint32
-> IO
     (Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "amask"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "amask")
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 @"amask") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint8
-> IO
     (Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "rbits"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "rbits")
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 @"rbits") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint8
-> IO
     (Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> Uint8
      -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "gbits"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "gbits")
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 @"gbits") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> Uint8
   -> SDL_PixelFormatDetails)
-> IO Uint8
-> IO
     (Uint8
      -> Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "bbits"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "bbits")
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 @"bbits") Ptr SDL_PixelFormatDetails
ptr0
        IO
  (Uint8
   -> Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_PixelFormatDetails)
-> IO Uint8
-> IO (Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "abits"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "abits")
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 @"abits") Ptr SDL_PixelFormatDetails
ptr0
        IO (Uint8 -> Uint8 -> Uint8 -> Uint8 -> SDL_PixelFormatDetails)
-> IO Uint8
-> IO (Uint8 -> Uint8 -> Uint8 -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "rshift"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "rshift")
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 @"rshift") Ptr SDL_PixelFormatDetails
ptr0
        IO (Uint8 -> Uint8 -> Uint8 -> SDL_PixelFormatDetails)
-> IO Uint8 -> IO (Uint8 -> Uint8 -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "gshift"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "gshift")
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 @"gshift") Ptr SDL_PixelFormatDetails
ptr0
        IO (Uint8 -> Uint8 -> SDL_PixelFormatDetails)
-> IO Uint8 -> IO (Uint8 -> SDL_PixelFormatDetails)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "bshift"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "bshift")
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 @"bshift") Ptr SDL_PixelFormatDetails
ptr0
        IO (Uint8 -> SDL_PixelFormatDetails)
-> IO Uint8 -> IO SDL_PixelFormatDetails
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "ashift"
-> Ptr SDL_PixelFormatDetails
-> IO (CFieldType SDL_PixelFormatDetails "ashift")
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 @"ashift") Ptr SDL_PixelFormatDetails
ptr0

instance Marshal.WriteRaw SDL_PixelFormatDetails where
  writeRaw :: Ptr SDL_PixelFormatDetails -> SDL_PixelFormatDetails -> IO ()
writeRaw =
    \Ptr SDL_PixelFormatDetails
ptr0 ->
      \SDL_PixelFormatDetails
s1 ->
        case SDL_PixelFormatDetails
s1 of
          SDL_PixelFormatDetails
            SDL_PixelFormat
format2
            Uint8
bits_per_pixel3
            Uint8
bytes_per_pixel4
            ConstantArray 2 Uint8
padding5
            Uint32
rmask6
            Uint32
gmask7
            Uint32
bmask8
            Uint32
amask9
            Uint8
rbits10
            Uint8
gbits11
            Uint8
bbits12
            Uint8
abits13
            Uint8
rshift14
            Uint8
gshift15
            Uint8
bshift16
            Uint8
ashift17 ->
              Proxy "format"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "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_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "format"
SDL_PixelFormat
format2
                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 "bits_per_pixel"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "bits_per_pixel"
-> 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 @"bits_per_pixel") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "bits_per_pixel"
Uint8
bits_per_pixel3
                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 "bytes_per_pixel"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "bytes_per_pixel"
-> 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 @"bytes_per_pixel") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "bytes_per_pixel"
Uint8
bytes_per_pixel4
                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 "padding"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "padding"
-> 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 @"padding") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "padding"
ConstantArray 2 Uint8
padding5
                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 "rmask"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "rmask"
-> 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 @"rmask") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "rmask"
Uint32
rmask6
                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 "gmask"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "gmask"
-> 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 @"gmask") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "gmask"
Uint32
gmask7
                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 "bmask"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "bmask"
-> 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 @"bmask") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "bmask"
Uint32
bmask8
                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 "amask"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "amask"
-> 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 @"amask") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "amask"
Uint32
amask9
                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 "rbits"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "rbits"
-> 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 @"rbits") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "rbits"
Uint8
rbits10
                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 "gbits"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "gbits"
-> 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 @"gbits") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "gbits"
Uint8
gbits11
                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 "bbits"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "bbits"
-> 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 @"bbits") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "bbits"
Uint8
bbits12
                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 "abits"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "abits"
-> 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 @"abits") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "abits"
Uint8
abits13
                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 "rshift"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "rshift"
-> 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 @"rshift") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "rshift"
Uint8
rshift14
                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 "gshift"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "gshift"
-> 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 @"gshift") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "gshift"
Uint8
gshift15
                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 "bshift"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "bshift"
-> 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 @"bshift") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "bshift"
Uint8
bshift16
                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 "ashift"
-> Ptr SDL_PixelFormatDetails
-> CFieldType SDL_PixelFormatDetails "ashift"
-> 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 @"ashift") Ptr SDL_PixelFormatDetails
ptr0 CFieldType SDL_PixelFormatDetails "ashift"
Uint8
ashift17

deriving via
  Marshal.EquivStorable SDL_PixelFormatDetails
  instance
    BG.Storable SDL_PixelFormatDetails

deriving via
  Struct.IsStructViaReadRaw SDL_PixelFormatDetails
  instance
    Struct.IsStruct SDL_PixelFormatDetails

-- | [C declaration]: @format@, defined at @SDL3\/SDL_pixels.h 1156:21@
instance
  (ty ~ SDL_PixelFormat)
  => BG.CompatHasField.HasField "format" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { format :: SDL_PixelFormat
format = ty
SDL_PixelFormat
y1
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL_PixelFormat)
  => BG.HasField "format" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "format"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "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_PixelFormatDetails "format" where
  type
    CFieldType SDL_PixelFormatDetails "format" =
      SDL_PixelFormat

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "format" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "format"
_ -> Int
0

-- | [C declaration]: @bits_per_pixel@, defined at @SDL3\/SDL_pixels.h 1157:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "bits_per_pixel" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { bits_per_pixel :: Uint8
bits_per_pixel = ty
Uint8
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_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "bits_per_pixel" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField =
    Proxy "bits_per_pixel"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "bits_per_pixel")
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 @"bits_per_pixel")

instance HasCField.HasCField SDL_PixelFormatDetails "bits_per_pixel" where
  type
    CFieldType SDL_PixelFormatDetails "bits_per_pixel" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "bits_per_pixel" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "bits_per_pixel"
_ -> Int
4

-- | [C declaration]: @bytes_per_pixel@, defined at @SDL3\/SDL_pixels.h 1158:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "bytes_per_pixel" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { bytes_per_pixel :: Uint8
bytes_per_pixel = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "bytes_per_pixel" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField =
    Proxy "bytes_per_pixel"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "bytes_per_pixel")
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 @"bytes_per_pixel")

instance HasCField.HasCField SDL_PixelFormatDetails "bytes_per_pixel" where
  type
    CFieldType SDL_PixelFormatDetails "bytes_per_pixel" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "bytes_per_pixel" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "bytes_per_pixel"
_ -> Int
5

-- | [C declaration]: @padding@, defined at @SDL3\/SDL_pixels.h 1159:11@
instance
  (ty ~ CA.ConstantArray 2 SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "padding" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { padding :: ConstantArray 2 Uint8
padding = ty
ConstantArray 2 Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"padding" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ CA.ConstantArray 2 SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "padding" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "padding"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "padding")
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 @"padding")

instance HasCField.HasCField SDL_PixelFormatDetails "padding" where
  type
    CFieldType SDL_PixelFormatDetails "padding" =
      CA.ConstantArray 2 SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "padding" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "padding"
_ -> Int
6

-- | [C declaration]: @Rmask@, defined at @SDL3\/SDL_pixels.h 1160:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "rmask" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { rmask :: Uint32
rmask = ty
Uint32
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"rmask" SDL_PixelFormatDetails
x0
      )

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

instance HasCField.HasCField SDL_PixelFormatDetails "rmask" where
  type
    CFieldType SDL_PixelFormatDetails "rmask" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "rmask" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "rmask"
_ -> Int
8

-- | [C declaration]: @Gmask@, defined at @SDL3\/SDL_pixels.h 1161:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "gmask" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { gmask :: Uint32
gmask = ty
Uint32
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"gmask" SDL_PixelFormatDetails
x0
      )

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

instance HasCField.HasCField SDL_PixelFormatDetails "gmask" where
  type
    CFieldType SDL_PixelFormatDetails "gmask" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "gmask" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "gmask"
_ -> Int
12

-- | [C declaration]: @Bmask@, defined at @SDL3\/SDL_pixels.h 1162:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "bmask" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { bmask :: Uint32
bmask = ty
Uint32
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"bmask" SDL_PixelFormatDetails
x0
      )

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

instance HasCField.HasCField SDL_PixelFormatDetails "bmask" where
  type
    CFieldType SDL_PixelFormatDetails "bmask" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "bmask" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "bmask"
_ -> Int
16

-- | [C declaration]: @Amask@, defined at @SDL3\/SDL_pixels.h 1163:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "amask" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { amask :: Uint32
amask = ty
Uint32
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"amask" SDL_PixelFormatDetails
x0
      )

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

instance HasCField.HasCField SDL_PixelFormatDetails "amask" where
  type
    CFieldType SDL_PixelFormatDetails "amask" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "amask" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "amask"
_ -> Int
20

-- | [C declaration]: @Rbits@, defined at @SDL3\/SDL_pixels.h 1164:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "rbits" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { rbits :: Uint8
rbits = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"rbits" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "rbits" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "rbits"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "rbits")
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 @"rbits")

instance HasCField.HasCField SDL_PixelFormatDetails "rbits" where
  type
    CFieldType SDL_PixelFormatDetails "rbits" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "rbits" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "rbits"
_ -> Int
24

-- | [C declaration]: @Gbits@, defined at @SDL3\/SDL_pixels.h 1165:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "gbits" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { gbits :: Uint8
gbits = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"gbits" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "gbits" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "gbits"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "gbits")
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 @"gbits")

instance HasCField.HasCField SDL_PixelFormatDetails "gbits" where
  type
    CFieldType SDL_PixelFormatDetails "gbits" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "gbits" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "gbits"
_ -> Int
25

-- | [C declaration]: @Bbits@, defined at @SDL3\/SDL_pixels.h 1166:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "bbits" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { bbits :: Uint8
bbits = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"bbits" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "bbits" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "bbits"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "bbits")
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 @"bbits")

instance HasCField.HasCField SDL_PixelFormatDetails "bbits" where
  type
    CFieldType SDL_PixelFormatDetails "bbits" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "bbits" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "bbits"
_ -> Int
26

-- | [C declaration]: @Abits@, defined at @SDL3\/SDL_pixels.h 1167:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "abits" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { abits :: Uint8
abits = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"abits" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "abits" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "abits"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "abits")
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 @"abits")

instance HasCField.HasCField SDL_PixelFormatDetails "abits" where
  type
    CFieldType SDL_PixelFormatDetails "abits" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "abits" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "abits"
_ -> Int
27

-- | [C declaration]: @Rshift@, defined at @SDL3\/SDL_pixels.h 1168:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "rshift" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { rshift :: Uint8
rshift = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"rshift" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "rshift" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "rshift"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "rshift")
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 @"rshift")

instance HasCField.HasCField SDL_PixelFormatDetails "rshift" where
  type
    CFieldType SDL_PixelFormatDetails "rshift" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "rshift" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "rshift"
_ -> Int
28

-- | [C declaration]: @Gshift@, defined at @SDL3\/SDL_pixels.h 1169:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "gshift" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { gshift :: Uint8
gshift = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"gshift" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "gshift" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "gshift"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "gshift")
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 @"gshift")

instance HasCField.HasCField SDL_PixelFormatDetails "gshift" where
  type
    CFieldType SDL_PixelFormatDetails "gshift" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "gshift" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "gshift"
_ -> Int
29

-- | [C declaration]: @Bshift@, defined at @SDL3\/SDL_pixels.h 1170:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "bshift" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { bshift :: Uint8
bshift = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , ashift :: Uint8
ashift = 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 @"ashift" SDL_PixelFormatDetails
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 @"bshift" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "bshift" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "bshift"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "bshift")
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 @"bshift")

instance HasCField.HasCField SDL_PixelFormatDetails "bshift" where
  type
    CFieldType SDL_PixelFormatDetails "bshift" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "bshift" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "bshift"
_ -> Int
30

-- | [C declaration]: @Ashift@, defined at @SDL3\/SDL_pixels.h 1171:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "ashift" SDL_PixelFormatDetails ty
  where
  hasField :: SDL_PixelFormatDetails -> (ty -> SDL_PixelFormatDetails, ty)
hasField =
    \SDL_PixelFormatDetails
x0 ->
      ( \ty
y1 ->
          SDL_PixelFormatDetails
            { ashift :: Uint8
ashift = ty
Uint8
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_PixelFormatDetails
x0
            , bits_per_pixel :: Uint8
bits_per_pixel = 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 @"bits_per_pixel" SDL_PixelFormatDetails
x0
            , bytes_per_pixel :: Uint8
bytes_per_pixel = 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 @"bytes_per_pixel" SDL_PixelFormatDetails
x0
            , padding :: ConstantArray 2 Uint8
padding = 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 @"padding" SDL_PixelFormatDetails
x0
            , rmask :: Uint32
rmask = 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 @"rmask" SDL_PixelFormatDetails
x0
            , gmask :: Uint32
gmask = 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 @"gmask" SDL_PixelFormatDetails
x0
            , bmask :: Uint32
bmask = 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 @"bmask" SDL_PixelFormatDetails
x0
            , amask :: Uint32
amask = 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 @"amask" SDL_PixelFormatDetails
x0
            , rbits :: Uint8
rbits = 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 @"rbits" SDL_PixelFormatDetails
x0
            , gbits :: Uint8
gbits = 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 @"gbits" SDL_PixelFormatDetails
x0
            , bbits :: Uint8
bbits = 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 @"bbits" SDL_PixelFormatDetails
x0
            , abits :: Uint8
abits = 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 @"abits" SDL_PixelFormatDetails
x0
            , rshift :: Uint8
rshift = 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 @"rshift" SDL_PixelFormatDetails
x0
            , gshift :: Uint8
gshift = 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 @"gshift" SDL_PixelFormatDetails
x0
            , bshift :: Uint8
bshift = 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 @"bshift" SDL_PixelFormatDetails
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 @"ashift" SDL_PixelFormatDetails
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "ashift" (BG.Ptr SDL_PixelFormatDetails) (BG.Ptr ty)
  where
  getField :: Ptr SDL_PixelFormatDetails -> Ptr ty
getField = Proxy "ashift"
-> Ptr SDL_PixelFormatDetails
-> Ptr (CFieldType SDL_PixelFormatDetails "ashift")
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 @"ashift")

instance HasCField.HasCField SDL_PixelFormatDetails "ashift" where
  type
    CFieldType SDL_PixelFormatDetails "ashift" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_PixelFormatDetails -> Proxy# "ashift" -> Int
offset# = \Proxy# SDL_PixelFormatDetails
_ -> \Proxy# "ashift"
_ -> Int
31