{-# language CPP #-}
-- | = Name
--
-- XR_KHR_composition_layer_equirect2 - instance extension
--
-- = Specification
--
-- See
-- <#XR_KHR_composition_layer_equirect2  XR_KHR_composition_layer_equirect2>
-- in the main specification for complete information.
--
-- = Registered Extension Number
--
  92
--
-- = Revision
--
  1
--
-- = Extension and Version Dependencies
--
  -    Requires OpenXR 1.0
--
-- = See Also
--
-- 'CompositionLayerEquirect2KHR'
--
-- = Document Notes
--
-- For more information, see the
  < #XR_KHR_composition_layer_equirect2 OpenXR Specification >
--
-- This page is a generated document. Fixes and changes should be made to
-- the generator scripts, not directly.
module OpenXR.Extensions.XR_KHR_composition_layer_equirect2  ( CompositionLayerEquirect2KHR(..)
                                                             , KHR_composition_layer_equirect2_SPEC_VERSION
                                                             , pattern KHR_composition_layer_equirect2_SPEC_VERSION
                                                             , KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME
                                                             , pattern KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME
                                                             ) where

import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Data.Coerce (coerce)
import OpenXR.CStruct (FromCStruct)
import OpenXR.CStruct (FromCStruct(..))
import OpenXR.CStruct (ToCStruct)
import OpenXR.CStruct (ToCStruct(..))
import OpenXR.Zero (Zero(..))
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.C.Types (CFloat)
import Foreign.C.Types (CFloat(..))
import Foreign.C.Types (CFloat(CFloat))
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import Data.Kind (Type)
import OpenXR.Core10.OtherTypes (CompositionLayerBaseHeader(..))
import OpenXR.Core10.Enums.CompositionLayerFlagBits (CompositionLayerFlags)
import OpenXR.Core10.Enums.EyeVisibility (EyeVisibility)
import OpenXR.Core10.OtherTypes (IsCompositionLayer(..))
import OpenXR.Core10.Space (Posef)
import OpenXR.Core10.Handles (Space_T)
import OpenXR.Core10.Enums.StructureType (StructureType)
import OpenXR.Core10.OtherTypes (SwapchainSubImage)
import OpenXR.Core10.Enums.StructureType (StructureType(TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR))
-- | XrCompositionLayerEquirect2KHR - Equirectangular layer composition info
--
-- == Member Descriptions
--
-- = Description
--
-- 'CompositionLayerEquirect2KHR' contains the information needed to render
-- an equirectangular image onto a sphere when calling
-- 'OpenXR.Core10.DisplayTiming.endFrame'. 'CompositionLayerEquirect2KHR'
-- is an alias type for the base struct
-- 'OpenXR.Core10.OtherTypes.CompositionLayerBaseHeader' used in
-- 'OpenXR.Core10.DisplayTiming.FrameEndInfo'.
--
-- == Valid Usage (Implicit)
--
-- -   #VUID-XrCompositionLayerEquirect2KHR-extension-notenabled# The
--     @XR_KHR_composition_layer_equirect2@ extension /must/ be enabled
--     prior to using 'CompositionLayerEquirect2KHR'
--
-- -   #VUID-XrCompositionLayerEquirect2KHR-type-type# @type@ /must/ be
      ' OpenXR.Core10.Enums . StructureType . TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR '
--
  -    # VUID - XrCompositionLayerEquirect2KHR - next - next # @next@ /must/ be
--     @NULL@ or a valid pointer to the
--     <#valid-usage-for-structure-pointer-chains next structure in a structure chain>
--
-- -   #VUID-XrCompositionLayerEquirect2KHR-layerFlags-parameter#
       /must/ be @0@ or a valid combination of
--     'OpenXR.Core10.Enums.CompositionLayerFlagBits.CompositionLayerFlagBits'
--     values
--
-- -   #VUID-XrCompositionLayerEquirect2KHR-space-parameter# @space@ /must/
--     be a valid 'OpenXR.Core10.Handles.Space' handle
--
-- -   #VUID-XrCompositionLayerEquirect2KHR-eyeVisibility-parameter#
--     @eyeVisibility@ /must/ be a valid
      ' OpenXR.Core10.Enums . EyeVisibility . EyeVisibility ' value
--
  -    # VUID - XrCompositionLayerEquirect2KHR - subImage - parameter # @subImage@
      /must/ be a valid ' OpenXR.Core10.OtherTypes .  '
--     structure
--
-- = See Also
--
-- 'OpenXR.Core10.OtherTypes.CompositionLayerBaseHeader',
  ' OpenXR.Core10.Enums . CompositionLayerFlagBits . CompositionLayerFlags ' ,
  ' OpenXR.Core10.Enums . EyeVisibility . EyeVisibility ' ,
  ' OpenXR.Core10.DisplayTiming . FrameEndInfo ' , ' OpenXR.Core10.Space .  ' ,
-- 'OpenXR.Core10.Handles.Space',
  ' OpenXR.Core10.Enums . StructureType . StructureType ' ,
  ' OpenXR.Core10.OtherTypes .  ' ,
-- 'OpenXR.Core10.DisplayTiming.endFrame'
data CompositionLayerEquirect2KHR = CompositionLayerEquirect2KHR
  | @layerFlags@ specifies options for the layer .
    layerFlags :: CompositionLayerFlags
  , -- | @space@ is the 'OpenXR.Core10.Handles.Space' in which the @pose@ of the
    -- equirect layer is evaluated over time.
    space :: Ptr Space_T
  , -- No documentation found for Nested "XrCompositionLayerEquirect2KHR" "eyeVisibility"
    eyeVisibility :: EyeVisibility
  , -- | @subImage@ identifies the image
  ' OpenXR.Core10.OtherTypes .  ' to use .
    subImage :: SwapchainSubImage
  | @pose@ is an ' OpenXR.Core10.Space .  ' defining the position and
    -- orientation of the center point of the sphere onto which the equirect
    -- image data is mapped, relative to the reference frame of the @space@.
    pose :: Posef
  , -- | @radius@ is the non-negative radius of the sphere onto which the
  equirect image data is mapped . Values of zero or floating point positive
    -- infinity are treated as an infinite sphere.
    radius :: Float
  , -- | @centralHorizontalAngle@ defines the visible horizontal angle of the
  sphere , based at 0 radians , in the range of [ 0 , 2π ] . It grows
    -- symmetrically around the 0 radian angle.
    centralHorizontalAngle :: Float
  , -- | @upperVerticalAngle@ defines the upper vertical angle of the visible
    -- portion of the sphere, in the range of [-π\/2, π\/2].
    upperVerticalAngle :: Float
  , -- | @lowerVerticalAngle@ defines the lower vertical angle of the visible
    -- portion of the sphere, in the range of [-π\/2, π\/2].
    lowerVerticalAngle :: Float
  }
  deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CompositionLayerEquirect2KHR)
#endif
deriving instance Show CompositionLayerEquirect2KHR

instance IsCompositionLayer CompositionLayerEquirect2KHR where
  toCompositionLayerBaseHeader CompositionLayerEquirect2KHR{..} = CompositionLayerBaseHeader{type' = TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR, next = (), ..}

instance ToCStruct CompositionLayerEquirect2KHR where
  withCStruct x f = allocaBytes 120 $ \p -> pokeCStruct p x (f p)
  pokeCStruct p CompositionLayerEquirect2KHR{..} f = do
    poke ((p `plusPtr` 0 :: Ptr StructureType)) (TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR)
    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
    poke ((p `plusPtr` 16 :: Ptr CompositionLayerFlags)) (layerFlags)
    poke ((p `plusPtr` 24 :: Ptr (Ptr Space_T))) (space)
    poke ((p `plusPtr` 32 :: Ptr EyeVisibility)) (eyeVisibility)
    poke ((p `plusPtr` 40 :: Ptr SwapchainSubImage)) (subImage)
    poke ((p `plusPtr` 72 :: Ptr Posef)) (pose)
    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (radius))
    poke ((p `plusPtr` 104 :: Ptr CFloat)) (CFloat (centralHorizontalAngle))
    poke ((p `plusPtr` 108 :: Ptr CFloat)) (CFloat (upperVerticalAngle))
    poke ((p `plusPtr` 112 :: Ptr CFloat)) (CFloat (lowerVerticalAngle))
    f
  cStructSize = 120
  cStructAlignment = 8
  pokeZeroCStruct p f = do
    poke ((p `plusPtr` 0 :: Ptr StructureType)) (TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR)
    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
    poke ((p `plusPtr` 24 :: Ptr (Ptr Space_T))) (zero)
    poke ((p `plusPtr` 32 :: Ptr EyeVisibility)) (zero)
    poke ((p `plusPtr` 40 :: Ptr SwapchainSubImage)) (zero)
    poke ((p `plusPtr` 72 :: Ptr Posef)) (zero)
    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (zero))
    poke ((p `plusPtr` 104 :: Ptr CFloat)) (CFloat (zero))
    poke ((p `plusPtr` 108 :: Ptr CFloat)) (CFloat (zero))
    poke ((p `plusPtr` 112 :: Ptr CFloat)) (CFloat (zero))
    f

instance FromCStruct CompositionLayerEquirect2KHR where
  peekCStruct p = do
    layerFlags <- peek @CompositionLayerFlags ((p `plusPtr` 16 :: Ptr CompositionLayerFlags))
    space <- peek @(Ptr Space_T) ((p `plusPtr` 24 :: Ptr (Ptr Space_T)))
    eyeVisibility <- peek @EyeVisibility ((p `plusPtr` 32 :: Ptr EyeVisibility))
    subImage <- peekCStruct @SwapchainSubImage ((p `plusPtr` 40 :: Ptr SwapchainSubImage))
    pose <- peekCStruct @Posef ((p `plusPtr` 72 :: Ptr Posef))
    radius <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))
    centralHorizontalAngle <- peek @CFloat ((p `plusPtr` 104 :: Ptr CFloat))
    upperVerticalAngle <- peek @CFloat ((p `plusPtr` 108 :: Ptr CFloat))
    lowerVerticalAngle <- peek @CFloat ((p `plusPtr` 112 :: Ptr CFloat))
    pure $ CompositionLayerEquirect2KHR
             layerFlags
             space
             eyeVisibility
             subImage
             pose
             (coerce @CFloat @Float radius)
             (coerce @CFloat @Float centralHorizontalAngle)
             (coerce @CFloat @Float upperVerticalAngle)
             (coerce @CFloat @Float lowerVerticalAngle)

instance Storable CompositionLayerEquirect2KHR where
  sizeOf ~_ = 120
  alignment ~_ = 8
  peek = peekCStruct
  poke ptr poked = pokeCStruct ptr poked (pure ())

instance Zero CompositionLayerEquirect2KHR where
  zero = CompositionLayerEquirect2KHR
           zero
           zero
           zero
           zero
           zero
           zero
           zero
           zero
           zero


type KHR_composition_layer_equirect2_SPEC_VERSION = 1

  No documentation found for TopLevel " XR_KHR_composition_layer_equirect2_SPEC_VERSION "
pattern KHR_composition_layer_equirect2_SPEC_VERSION :: forall a . Integral a => a
pattern KHR_composition_layer_equirect2_SPEC_VERSION = 1


type KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME = "XR_KHR_composition_layer_equirect2"

  No documentation found for TopLevel " XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME "
pattern KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME = "XR_KHR_composition_layer_equirect2"


# language CPP #
 | = Name

 XR_KHR_composition_layer_equirect2 - instance extension

 = Specification

 See
 <#XR_KHR_composition_layer_equirect2  XR_KHR_composition_layer_equirect2>
 in the main specification for complete information.

 = Registered Extension Number


 = Revision


 = Extension and Version Dependencies


 = See Also

 'CompositionLayerEquirect2KHR'

 = Document Notes

 For more information, see the

 This page is a generated document. Fixes and changes should be made to
 the generator scripts, not directly.
 | XrCompositionLayerEquirect2KHR - Equirectangular layer composition info

 == Member Descriptions

 = Description

 'CompositionLayerEquirect2KHR' contains the information needed to render
 an equirectangular image onto a sphere when calling
 'OpenXR.Core10.DisplayTiming.endFrame'. 'CompositionLayerEquirect2KHR'
 is an alias type for the base struct
 'OpenXR.Core10.OtherTypes.CompositionLayerBaseHeader' used in
 'OpenXR.Core10.DisplayTiming.FrameEndInfo'.

 == Valid Usage (Implicit)

 -   #VUID-XrCompositionLayerEquirect2KHR-extension-notenabled# The
     @XR_KHR_composition_layer_equirect2@ extension /must/ be enabled
     prior to using 'CompositionLayerEquirect2KHR'

 -   #VUID-XrCompositionLayerEquirect2KHR-type-type# @type@ /must/ be

     @NULL@ or a valid pointer to the
     <#valid-usage-for-structure-pointer-chains next structure in a structure chain>

 -   #VUID-XrCompositionLayerEquirect2KHR-layerFlags-parameter#
     'OpenXR.Core10.Enums.CompositionLayerFlagBits.CompositionLayerFlagBits'
     values

 -   #VUID-XrCompositionLayerEquirect2KHR-space-parameter# @space@ /must/
     be a valid 'OpenXR.Core10.Handles.Space' handle

 -   #VUID-XrCompositionLayerEquirect2KHR-eyeVisibility-parameter#
     @eyeVisibility@ /must/ be a valid

     structure

 = See Also

 'OpenXR.Core10.OtherTypes.CompositionLayerBaseHeader',
 'OpenXR.Core10.Handles.Space',
 'OpenXR.Core10.DisplayTiming.endFrame'
 | @space@ is the 'OpenXR.Core10.Handles.Space' in which the @pose@ of the
 equirect layer is evaluated over time.
 No documentation found for Nested "XrCompositionLayerEquirect2KHR" "eyeVisibility"
 | @subImage@ identifies the image
 orientation of the center point of the sphere onto which the equirect
 image data is mapped, relative to the reference frame of the @space@.
 | @radius@ is the non-negative radius of the sphere onto which the
 infinity are treated as an infinite sphere.
 | @centralHorizontalAngle@ defines the visible horizontal angle of the
 symmetrically around the 0 radian angle.
 | @upperVerticalAngle@ defines the upper vertical angle of the visible
 portion of the sphere, in the range of [-π\/2, π\/2].
 | @lowerVerticalAngle@ defines the lower vertical angle of the visible
 portion of the sphere, in the range of [-π\/2, π\/2].
  92
  1
  -    Requires OpenXR 1.0
  < #XR_KHR_composition_layer_equirect2 OpenXR Specification >
module OpenXR.Extensions.XR_KHR_composition_layer_equirect2  ( CompositionLayerEquirect2KHR(..)
                                                             , KHR_composition_layer_equirect2_SPEC_VERSION
                                                             , pattern KHR_composition_layer_equirect2_SPEC_VERSION
                                                             , KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME
                                                             , pattern KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME
                                                             ) where

import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Data.Coerce (coerce)
import OpenXR.CStruct (FromCStruct)
import OpenXR.CStruct (FromCStruct(..))
import OpenXR.CStruct (ToCStruct)
import OpenXR.CStruct (ToCStruct(..))
import OpenXR.Zero (Zero(..))
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.C.Types (CFloat)
import Foreign.C.Types (CFloat(..))
import Foreign.C.Types (CFloat(CFloat))
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import Data.Kind (Type)
import OpenXR.Core10.OtherTypes (CompositionLayerBaseHeader(..))
import OpenXR.Core10.Enums.CompositionLayerFlagBits (CompositionLayerFlags)
import OpenXR.Core10.Enums.EyeVisibility (EyeVisibility)
import OpenXR.Core10.OtherTypes (IsCompositionLayer(..))
import OpenXR.Core10.Space (Posef)
import OpenXR.Core10.Handles (Space_T)
import OpenXR.Core10.Enums.StructureType (StructureType)
import OpenXR.Core10.OtherTypes (SwapchainSubImage)
import OpenXR.Core10.Enums.StructureType (StructureType(TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR))
      ' OpenXR.Core10.Enums . StructureType . TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR '
  -    # VUID - XrCompositionLayerEquirect2KHR - next - next # @next@ /must/ be
       /must/ be @0@ or a valid combination of
      ' OpenXR.Core10.Enums . EyeVisibility . EyeVisibility ' value
  -    # VUID - XrCompositionLayerEquirect2KHR - subImage - parameter # @subImage@
      /must/ be a valid ' OpenXR.Core10.OtherTypes .  '
  ' OpenXR.Core10.Enums . CompositionLayerFlagBits . CompositionLayerFlags ' ,
  ' OpenXR.Core10.Enums . EyeVisibility . EyeVisibility ' ,
  ' OpenXR.Core10.DisplayTiming . FrameEndInfo ' , ' OpenXR.Core10.Space .  ' ,
  ' OpenXR.Core10.Enums . StructureType . StructureType ' ,
  ' OpenXR.Core10.OtherTypes .  ' ,
data CompositionLayerEquirect2KHR = CompositionLayerEquirect2KHR
  | @layerFlags@ specifies options for the layer .
    layerFlags :: CompositionLayerFlags
    space :: Ptr Space_T
    eyeVisibility :: EyeVisibility
  ' OpenXR.Core10.OtherTypes .  ' to use .
    subImage :: SwapchainSubImage
  | @pose@ is an ' OpenXR.Core10.Space .  ' defining the position and
    pose :: Posef
  equirect image data is mapped . Values of zero or floating point positive
    radius :: Float
  sphere , based at 0 radians , in the range of [ 0 , 2π ] . It grows
    centralHorizontalAngle :: Float
    upperVerticalAngle :: Float
    lowerVerticalAngle :: Float
  }
  deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CompositionLayerEquirect2KHR)
#endif
deriving instance Show CompositionLayerEquirect2KHR

instance IsCompositionLayer CompositionLayerEquirect2KHR where
  toCompositionLayerBaseHeader CompositionLayerEquirect2KHR{..} = CompositionLayerBaseHeader{type' = TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR, next = (), ..}

instance ToCStruct CompositionLayerEquirect2KHR where
  withCStruct x f = allocaBytes 120 $ \p -> pokeCStruct p x (f p)
  pokeCStruct p CompositionLayerEquirect2KHR{..} f = do
    poke ((p `plusPtr` 0 :: Ptr StructureType)) (TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR)
    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
    poke ((p `plusPtr` 16 :: Ptr CompositionLayerFlags)) (layerFlags)
    poke ((p `plusPtr` 24 :: Ptr (Ptr Space_T))) (space)
    poke ((p `plusPtr` 32 :: Ptr EyeVisibility)) (eyeVisibility)
    poke ((p `plusPtr` 40 :: Ptr SwapchainSubImage)) (subImage)
    poke ((p `plusPtr` 72 :: Ptr Posef)) (pose)
    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (radius))
    poke ((p `plusPtr` 104 :: Ptr CFloat)) (CFloat (centralHorizontalAngle))
    poke ((p `plusPtr` 108 :: Ptr CFloat)) (CFloat (upperVerticalAngle))
    poke ((p `plusPtr` 112 :: Ptr CFloat)) (CFloat (lowerVerticalAngle))
    f
  cStructSize = 120
  cStructAlignment = 8
  pokeZeroCStruct p f = do
    poke ((p `plusPtr` 0 :: Ptr StructureType)) (TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR)
    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
    poke ((p `plusPtr` 24 :: Ptr (Ptr Space_T))) (zero)
    poke ((p `plusPtr` 32 :: Ptr EyeVisibility)) (zero)
    poke ((p `plusPtr` 40 :: Ptr SwapchainSubImage)) (zero)
    poke ((p `plusPtr` 72 :: Ptr Posef)) (zero)
    poke ((p `plusPtr` 100 :: Ptr CFloat)) (CFloat (zero))
    poke ((p `plusPtr` 104 :: Ptr CFloat)) (CFloat (zero))
    poke ((p `plusPtr` 108 :: Ptr CFloat)) (CFloat (zero))
    poke ((p `plusPtr` 112 :: Ptr CFloat)) (CFloat (zero))
    f

instance FromCStruct CompositionLayerEquirect2KHR where
  peekCStruct p = do
    layerFlags <- peek @CompositionLayerFlags ((p `plusPtr` 16 :: Ptr CompositionLayerFlags))
    space <- peek @(Ptr Space_T) ((p `plusPtr` 24 :: Ptr (Ptr Space_T)))
    eyeVisibility <- peek @EyeVisibility ((p `plusPtr` 32 :: Ptr EyeVisibility))
    subImage <- peekCStruct @SwapchainSubImage ((p `plusPtr` 40 :: Ptr SwapchainSubImage))
    pose <- peekCStruct @Posef ((p `plusPtr` 72 :: Ptr Posef))
    radius <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))
    centralHorizontalAngle <- peek @CFloat ((p `plusPtr` 104 :: Ptr CFloat))
    upperVerticalAngle <- peek @CFloat ((p `plusPtr` 108 :: Ptr CFloat))
    lowerVerticalAngle <- peek @CFloat ((p `plusPtr` 112 :: Ptr CFloat))
    pure $ CompositionLayerEquirect2KHR
             layerFlags
             space
             eyeVisibility
             subImage
             pose
             (coerce @CFloat @Float radius)
             (coerce @CFloat @Float centralHorizontalAngle)
             (coerce @CFloat @Float upperVerticalAngle)
             (coerce @CFloat @Float lowerVerticalAngle)

instance Storable CompositionLayerEquirect2KHR where
  sizeOf ~_ = 120
  alignment ~_ = 8
  peek = peekCStruct
  poke ptr poked = pokeCStruct ptr poked (pure ())

instance Zero CompositionLayerEquirect2KHR where
  zero = CompositionLayerEquirect2KHR
           zero
           zero
           zero
           zero
           zero
           zero
           zero
           zero
           zero


type KHR_composition_layer_equirect2_SPEC_VERSION = 1

  No documentation found for TopLevel " XR_KHR_composition_layer_equirect2_SPEC_VERSION "
pattern KHR_composition_layer_equirect2_SPEC_VERSION :: forall a . Integral a => a
pattern KHR_composition_layer_equirect2_SPEC_VERSION = 1


type KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME = "XR_KHR_composition_layer_equirect2"

  No documentation found for TopLevel " XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME "
pattern KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME = "XR_KHR_composition_layer_equirect2"

