{-# LINE 1 "FreeType/Format/TrueType/Types.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE PatternSynonyms #-}

module FreeType.Format.TrueType.Types where

import           FreeType.Core.Types.Types

import           Data.Function ((&))
import           Data.Word
import           Foreign.Ptr
import           Foreign.Storable




data TT_Header = TT_Header
                   { hTable_Version       :: FT_Fixed
                   , hFont_Revision       :: FT_Fixed
                   , hCheckSum_Adjust     :: FT_Long
                   , hMagic_Number        :: FT_Long
                   , hFlags               :: FT_UShort
                   , hUnits_Per_EM        :: FT_UShort
                   , hCreated             :: Ptr FT_ULong
                   , hModified            :: Ptr FT_ULong
                   , hXMin                :: FT_Short
                   , hYMin                :: FT_Short
                   , hXMax                :: FT_Short
                   , hYMax                :: FT_Short
                   , hMac_Style           :: FT_UShort
                   , hLowest_Rec_PPEM     :: FT_UShort
                   , hFont_Direction      :: FT_Short
                   , hIndex_To_Loc_Format :: FT_Short
                   , hGlyph_Data_Format   :: FT_Short
                   }

instance Storable TT_Header where
  sizeOf _    = (96)
{-# LINE 38 "FreeType/Format/TrueType/Types.hsc" #-}
  alignment _ = 8
{-# LINE 39 "FreeType/Format/TrueType/Types.hsc" #-}

  peek ptr =
    TT_Header
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 43 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 44 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 45 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 46 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 32) ptr
{-# LINE 47 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 34) ptr
{-# LINE 48 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 49 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 56) ptr
{-# LINE 50 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 72) ptr
{-# LINE 51 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 74) ptr
{-# LINE 52 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 76) ptr
{-# LINE 53 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 78) ptr
{-# LINE 54 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 80) ptr
{-# LINE 55 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 82) ptr
{-# LINE 56 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 84) ptr
{-# LINE 57 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 86) ptr
{-# LINE 58 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 88) ptr
{-# LINE 59 "FreeType/Format/TrueType/Types.hsc" #-}

  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & hTable_Version
{-# LINE 62 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & hFont_Revision
{-# LINE 63 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & hCheckSum_Adjust
{-# LINE 64 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & hMagic_Number
{-# LINE 65 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 32) ptr $ val & hFlags
{-# LINE 66 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 34) ptr $ val & hUnits_Per_EM
{-# LINE 67 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 40) ptr $ val & hCreated
{-# LINE 68 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 56) ptr $ val & hModified
{-# LINE 69 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 72) ptr $ val & hXMin
{-# LINE 70 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 74) ptr $ val & hYMin
{-# LINE 71 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 76) ptr $ val & hXMax
{-# LINE 72 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 78) ptr $ val & hYMax
{-# LINE 73 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 80) ptr $ val & hMac_Style
{-# LINE 74 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 82) ptr $ val & hLowest_Rec_PPEM
{-# LINE 75 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 84) ptr $ val & hFont_Direction
{-# LINE 76 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 86) ptr $ val & hIndex_To_Loc_Format
{-# LINE 77 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 88) ptr $ val & hGlyph_Data_Format
{-# LINE 78 "FreeType/Format/TrueType/Types.hsc" #-}



data TT_HoriHeader = TT_HoriHeader
                       { hhVersion                :: FT_Fixed
                       , hhAscender               :: FT_Short
                       , hhDescender              :: FT_Short
                       , hhLine_Gap               :: FT_Short
                       , hhAdvance_Width_Max      :: FT_UShort
                       , hhMin_Left_Side_Bearing  :: FT_Short
                       , hhMin_Right_Side_Bearing :: FT_Short
                       , hhXMax_Extent            :: FT_Short
                       , hhCaret_Slope_Rise       :: FT_Short
                       , hhCaret_Slope_Run        :: FT_Short
                       , hhCaret_Offset           :: FT_Short
                       , hhReserved               :: Ptr FT_Short
                       , hhMetric_Data_Format     :: FT_Short
                       , hhNumber_Of_HMetrics     :: FT_UShort
                       , hhLong_metrics           :: Ptr ()
                       , hhShort_metrics          :: Ptr ()
                       }

instance Storable TT_HoriHeader where
  sizeOf _    = (56)
{-# LINE 102 "FreeType/Format/TrueType/Types.hsc" #-}
  alignment _ = 8
{-# LINE 103 "FreeType/Format/TrueType/Types.hsc" #-}

  peek ptr =
    TT_HoriHeader
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 107 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 108 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 10) ptr
{-# LINE 109 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 110 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 14) ptr
{-# LINE 111 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 112 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 18) ptr
{-# LINE 113 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 114 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 22) ptr
{-# LINE 115 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 116 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 26) ptr
{-# LINE 117 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 28) ptr
{-# LINE 118 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 36) ptr
{-# LINE 119 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 38) ptr
{-# LINE 120 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 121 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 48) ptr
{-# LINE 122 "FreeType/Format/TrueType/Types.hsc" #-}


  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & hhVersion
{-# LINE 126 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & hhAscender
{-# LINE 127 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 10) ptr $ val & hhDescender
{-# LINE 128 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 12) ptr $ val & hhLine_Gap
{-# LINE 129 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 14) ptr $ val & hhAdvance_Width_Max
{-# LINE 130 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & hhMin_Left_Side_Bearing
{-# LINE 131 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 18) ptr $ val & hhMin_Right_Side_Bearing
{-# LINE 132 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 20) ptr $ val & hhXMax_Extent
{-# LINE 133 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 22) ptr $ val & hhCaret_Slope_Rise
{-# LINE 134 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & hhCaret_Slope_Run
{-# LINE 135 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 26) ptr $ val & hhCaret_Offset
{-# LINE 136 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 28) ptr $ val & hhReserved
{-# LINE 137 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 36) ptr $ val & hhMetric_Data_Format
{-# LINE 138 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 38) ptr $ val & hhNumber_Of_HMetrics
{-# LINE 139 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 40) ptr $ val & hhLong_metrics
{-# LINE 140 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 48) ptr $ val & hhShort_metrics
{-# LINE 141 "FreeType/Format/TrueType/Types.hsc" #-}



data TT_VertHeader = TT_VertHeader
                       { vhVersion                 :: FT_Fixed
                       , vhAscender                :: FT_Short
                       , vhDescender               :: FT_Short
                       , vhLine_Gap                :: FT_Short
                       , vhAdvance_Height_Max      :: FT_UShort
                       , vhMin_Top_Side_Bearing    :: FT_Short
                       , vhMin_Bottom_Side_Bearing :: FT_Short
                       , vhYMax_Extent             :: FT_Short
                       , vhCaret_Slope_Rise        :: FT_Short
                       , vhCaret_Slope_Run         :: FT_Short
                       , vhCaret_Offset            :: FT_Short
                       , vhReserved                :: Ptr FT_Short
                       , vhMetric_Data_Format      :: FT_Short
                       , vhNumber_Of_VMetrics      :: FT_UShort
                       , vhLong_metrics            :: Ptr ()
                       , vhShort_metrics           :: Ptr ()
                       }

instance Storable TT_VertHeader where
  sizeOf _    = (56)
{-# LINE 165 "FreeType/Format/TrueType/Types.hsc" #-}
  alignment _ = 8
{-# LINE 166 "FreeType/Format/TrueType/Types.hsc" #-}

  peek ptr =
    TT_VertHeader
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 170 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 171 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 10) ptr
{-# LINE 172 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 173 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 14) ptr
{-# LINE 174 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 175 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 18) ptr
{-# LINE 176 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 177 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 22) ptr
{-# LINE 178 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 179 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 26) ptr
{-# LINE 180 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 28) ptr
{-# LINE 181 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 36) ptr
{-# LINE 182 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 38) ptr
{-# LINE 183 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 184 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 48) ptr
{-# LINE 185 "FreeType/Format/TrueType/Types.hsc" #-}


  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & vhVersion
{-# LINE 189 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & vhAscender
{-# LINE 190 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 10) ptr $ val & vhDescender
{-# LINE 191 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 12) ptr $ val & vhLine_Gap
{-# LINE 192 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 14) ptr $ val & vhAdvance_Height_Max
{-# LINE 193 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & vhMin_Top_Side_Bearing
{-# LINE 194 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 18) ptr $ val & vhMin_Bottom_Side_Bearing
{-# LINE 195 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 20) ptr $ val & vhYMax_Extent
{-# LINE 196 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 22) ptr $ val & vhCaret_Slope_Rise
{-# LINE 197 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & vhCaret_Slope_Run
{-# LINE 198 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 26) ptr $ val & vhCaret_Offset
{-# LINE 199 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 28) ptr $ val & vhReserved
{-# LINE 200 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 36) ptr $ val & vhMetric_Data_Format
{-# LINE 201 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 38) ptr $ val & vhNumber_Of_VMetrics
{-# LINE 202 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 40) ptr $ val & vhLong_metrics
{-# LINE 203 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 48) ptr $ val & vhShort_metrics
{-# LINE 204 "FreeType/Format/TrueType/Types.hsc" #-}



data TT_OS2 = TT_OS2
                { osVersion                 :: FT_UShort
                , osXAvgCharWidth           :: FT_Short
                , osUsWeightClass           :: FT_UShort
                , osUsWidthClass            :: FT_UShort
                , osFsType                  :: FT_UShort
                , osYSubscriptXSize         :: FT_Short
                , osYSubscriptYSize         :: FT_Short
                , osYSubscriptXOffset       :: FT_Short
                , osYSubscriptYOffset       :: FT_Short
                , osYSuperscriptXSize       :: FT_Short
                , osYSuperscriptYSize       :: FT_Short
                , osYSuperscriptXOffset     :: FT_Short
                , osYSuperscriptYOffset     :: FT_Short
                , osYStrikeoutSize          :: FT_Short
                , osYStrikeoutPosition      :: FT_Short
                , osSFamilyClass            :: FT_Short
                , osPanose                  :: Ptr FT_Byte
                , osUlUnicodeRange1         :: FT_ULong
                , osUlUnicodeRange2         :: FT_ULong
                , osUlUnicodeRange3         :: FT_ULong
                , osUlUnicodeRange4         :: FT_ULong
                , osAchVendID               :: Ptr FT_Char
                , osFsSelection             :: FT_UShort
                , osUsFirstCharIndex        :: FT_UShort
                , osUsLastCharIndex         :: FT_UShort
                , osSTypoAscender           :: FT_Short
                , osSTypoDescender          :: FT_Short
                , osSTypoLineGap            :: FT_Short
                , osUsWinAscent             :: FT_UShort
                , osUsWinDescent            :: FT_UShort
                , osUlCodePageRange1        :: FT_ULong
                , osUlCodePageRange2        :: FT_ULong
                , osSxHeight                :: FT_Short
                , osSCapHeight              :: FT_Short
                , osUsDefaultChar           :: FT_UShort
                , osUsBreakChar             :: FT_UShort
                , osUsMaxContext            :: FT_UShort
                , osUsLowerOpticalPointSize :: FT_UShort
                , osUsUpperOpticalPointSize :: FT_UShort
                }

instance Storable TT_OS2 where
  sizeOf _    = (136)
{-# LINE 251 "FreeType/Format/TrueType/Types.hsc" #-}
  alignment _ = 8
{-# LINE 252 "FreeType/Format/TrueType/Types.hsc" #-}

  peek ptr =
    TT_OS2
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 256 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 2) ptr
{-# LINE 257 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 4) ptr
{-# LINE 258 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 6) ptr
{-# LINE 259 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 260 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 10) ptr
{-# LINE 261 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 262 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 14) ptr
{-# LINE 263 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 264 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 18) ptr
{-# LINE 265 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 266 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 22) ptr
{-# LINE 267 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 268 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 26) ptr
{-# LINE 269 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 28) ptr
{-# LINE 270 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 30) ptr
{-# LINE 271 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 32) ptr
{-# LINE 272 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 48) ptr
{-# LINE 273 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 56) ptr
{-# LINE 274 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 64) ptr
{-# LINE 275 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 72) ptr
{-# LINE 276 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 80) ptr
{-# LINE 277 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 84) ptr
{-# LINE 278 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 86) ptr
{-# LINE 279 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 88) ptr
{-# LINE 280 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 90) ptr
{-# LINE 281 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 92) ptr
{-# LINE 282 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 94) ptr
{-# LINE 283 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 96) ptr
{-# LINE 284 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 98) ptr
{-# LINE 285 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 104) ptr
{-# LINE 286 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 112) ptr
{-# LINE 287 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 120) ptr
{-# LINE 288 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 122) ptr
{-# LINE 289 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 124) ptr
{-# LINE 290 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 126) ptr
{-# LINE 291 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 128) ptr
{-# LINE 292 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 130) ptr
{-# LINE 293 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 132) ptr
{-# LINE 294 "FreeType/Format/TrueType/Types.hsc" #-}

  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & osVersion
{-# LINE 297 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 2) ptr $ val & osXAvgCharWidth
{-# LINE 298 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 4) ptr $ val & osUsWeightClass
{-# LINE 299 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 6) ptr $ val & osUsWidthClass
{-# LINE 300 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & osFsType
{-# LINE 301 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 10) ptr $ val & osYSubscriptXSize
{-# LINE 302 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 12) ptr $ val & osYSubscriptYSize
{-# LINE 303 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 14) ptr $ val & osYSubscriptXOffset
{-# LINE 304 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & osYSubscriptYOffset
{-# LINE 305 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 18) ptr $ val & osYSuperscriptXSize
{-# LINE 306 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 20) ptr $ val & osYSuperscriptYSize
{-# LINE 307 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 22) ptr $ val & osYSuperscriptXOffset
{-# LINE 308 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & osYSuperscriptYOffset
{-# LINE 309 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 26) ptr $ val & osYStrikeoutSize
{-# LINE 310 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 28) ptr $ val & osYStrikeoutPosition
{-# LINE 311 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 30) ptr $ val & osSFamilyClass
{-# LINE 312 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 32) ptr $ val & osPanose
{-# LINE 313 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 48) ptr $ val & osUlUnicodeRange1
{-# LINE 314 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 56) ptr $ val & osUlUnicodeRange2
{-# LINE 315 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 64) ptr $ val & osUlUnicodeRange3
{-# LINE 316 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 72) ptr $ val & osUlUnicodeRange4
{-# LINE 317 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 80) ptr $ val & osAchVendID
{-# LINE 318 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 84) ptr $ val & osFsSelection
{-# LINE 319 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 86) ptr $ val & osUsFirstCharIndex
{-# LINE 320 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 88) ptr $ val & osUsLastCharIndex
{-# LINE 321 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 90) ptr $ val & osSTypoAscender
{-# LINE 322 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 92) ptr $ val & osSTypoDescender
{-# LINE 323 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 94) ptr $ val & osSTypoLineGap
{-# LINE 324 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 96) ptr $ val & osUsWinAscent
{-# LINE 325 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 98) ptr $ val & osUsWinDescent
{-# LINE 326 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 104) ptr $ val & osUlCodePageRange1
{-# LINE 327 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 112) ptr $ val & osUlCodePageRange2
{-# LINE 328 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 120) ptr $ val & osSxHeight
{-# LINE 329 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 122) ptr $ val & osSCapHeight
{-# LINE 330 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 124) ptr $ val & osUsDefaultChar
{-# LINE 331 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 126) ptr $ val & osUsBreakChar
{-# LINE 332 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 128) ptr $ val & osUsMaxContext
{-# LINE 333 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 130) ptr $ val & osUsLowerOpticalPointSize
{-# LINE 334 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 132) ptr $ val & osUsUpperOpticalPointSize
{-# LINE 335 "FreeType/Format/TrueType/Types.hsc" #-}



data TT_Postscript = TT_Postscript
                       { pFormatType         :: FT_Fixed
                       , pItalicAngle        :: FT_Fixed
                       , pUnderlinePosition  :: FT_Short
                       , pUnderlineThickness :: FT_Short
                       , pIsFixedPitch       :: FT_ULong
                       , pMinMemType42       :: FT_ULong
                       , pMaxMemType42       :: FT_ULong
                       , pMinMemType1        :: FT_ULong
                       , pMaxMemType1        :: FT_ULong
                       }
instance Storable TT_Postscript where
  sizeOf _    = (64)
{-# LINE 351 "FreeType/Format/TrueType/Types.hsc" #-}
  alignment _ = 8
{-# LINE 352 "FreeType/Format/TrueType/Types.hsc" #-}

  peek ptr =
    TT_Postscript
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 356 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 357 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 358 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 18) ptr
{-# LINE 359 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 360 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 32) ptr
{-# LINE 361 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 362 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 48) ptr
{-# LINE 363 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 56) ptr
{-# LINE 364 "FreeType/Format/TrueType/Types.hsc" #-}

  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & pFormatType
{-# LINE 367 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & pItalicAngle
{-# LINE 368 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & pUnderlinePosition
{-# LINE 369 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 18) ptr $ val & pUnderlineThickness
{-# LINE 370 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & pIsFixedPitch
{-# LINE 371 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 32) ptr $ val & pMinMemType42
{-# LINE 372 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 40) ptr $ val & pMaxMemType42
{-# LINE 373 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 48) ptr $ val & pMinMemType1
{-# LINE 374 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 56) ptr $ val & pMaxMemType1
{-# LINE 375 "FreeType/Format/TrueType/Types.hsc" #-}



data TT_PCLT = TT_PCLT
                 { pcltVersion             :: FT_Fixed
                 , pcltFontNumber          :: FT_ULong
                 , pcltPitch               :: FT_UShort
                 , pcltXHeight             :: FT_UShort
                 , pcltStyle               :: FT_UShort
                 , pcltTypeFamily          :: FT_UShort
                 , pcltCapHeight           :: FT_UShort
                 , pcltSymbolSet           :: FT_UShort
                 , pcltTypeFace            :: Ptr FT_Char
                 , pcltCharacterComplement :: Ptr FT_Char
                 , pcltFileName            :: Ptr FT_Char
                 , pcltStrokeWeight        :: FT_Char
                 , pcltWidthType           :: FT_Char
                 , pcltSerifStyle          :: FT_Byte
                 , pcltReserved            :: FT_Byte
                 }

instance Storable TT_PCLT where
  sizeOf _    = (64)
{-# LINE 398 "FreeType/Format/TrueType/Types.hsc" #-}
  alignment _ = 8
{-# LINE 399 "FreeType/Format/TrueType/Types.hsc" #-}

  peek ptr =
    TT_PCLT
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 403 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 404 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 405 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 18) ptr
{-# LINE 406 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 407 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 22) ptr
{-# LINE 408 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 409 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 26) ptr
{-# LINE 410 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 28) ptr
{-# LINE 411 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 44) ptr
{-# LINE 412 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 52) ptr
{-# LINE 413 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 58) ptr
{-# LINE 414 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 59) ptr
{-# LINE 415 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 60) ptr
{-# LINE 416 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 61) ptr
{-# LINE 417 "FreeType/Format/TrueType/Types.hsc" #-}

  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & pcltVersion
{-# LINE 420 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & pcltFontNumber
{-# LINE 421 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & pcltPitch
{-# LINE 422 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 18) ptr $ val & pcltXHeight
{-# LINE 423 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 20) ptr $ val & pcltStyle
{-# LINE 424 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 22) ptr $ val & pcltTypeFamily
{-# LINE 425 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & pcltCapHeight
{-# LINE 426 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 26) ptr $ val & pcltSymbolSet
{-# LINE 427 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 28) ptr $ val & pcltTypeFace
{-# LINE 428 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 44) ptr $ val & pcltCharacterComplement
{-# LINE 429 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 52) ptr $ val & pcltFileName
{-# LINE 430 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 58) ptr $ val & pcltStrokeWeight
{-# LINE 431 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 59) ptr $ val & pcltWidthType
{-# LINE 432 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 60) ptr $ val & pcltSerifStyle
{-# LINE 433 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 61) ptr $ val & pcltReserved
{-# LINE 434 "FreeType/Format/TrueType/Types.hsc" #-}



data TT_MaxProfile = TT_MaxProfile
                       { mpVersion               :: FT_Fixed
                       , mpNumGlyphs             :: FT_UShort
                       , mpMaxPoints             :: FT_UShort
                       , mpMaxContours           :: FT_UShort
                       , mpMaxCompositePoints    :: FT_UShort
                       , mpMaxCompositeContours  :: FT_UShort
                       , mpMaxZones              :: FT_UShort
                       , mpMaxTwilightPoints     :: FT_UShort
                       , mpMaxStorage            :: FT_UShort
                       , mpMaxFunctionDefs       :: FT_UShort
                       , mpMaxInstructionDefs    :: FT_UShort
                       , mpMaxStackElements      :: FT_UShort
                       , mpMaxSizeOfInstructions :: FT_UShort
                       , mpMaxComponentElements  :: FT_UShort
                       , mpMaxComponentDepth     :: FT_UShort
                       }

instance Storable TT_MaxProfile where
  sizeOf _    = (40)
{-# LINE 457 "FreeType/Format/TrueType/Types.hsc" #-}
  alignment _ = 8
{-# LINE 458 "FreeType/Format/TrueType/Types.hsc" #-}

  peek ptr =
    TT_MaxProfile
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 462 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 463 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 10) ptr
{-# LINE 464 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
{-# LINE 465 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 14) ptr
{-# LINE 466 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 467 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 18) ptr
{-# LINE 468 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 20) ptr
{-# LINE 469 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 22) ptr
{-# LINE 470 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 471 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 26) ptr
{-# LINE 472 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 28) ptr
{-# LINE 473 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 30) ptr
{-# LINE 474 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 32) ptr
{-# LINE 475 "FreeType/Format/TrueType/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 34) ptr
{-# LINE 476 "FreeType/Format/TrueType/Types.hsc" #-}

  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & mpVersion
{-# LINE 479 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & mpNumGlyphs
{-# LINE 480 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 10) ptr $ val & mpMaxPoints
{-# LINE 481 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 12) ptr $ val & mpMaxContours
{-# LINE 482 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 14) ptr $ val & mpMaxCompositePoints
{-# LINE 483 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & mpMaxCompositeContours
{-# LINE 484 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 18) ptr $ val & mpMaxZones
{-# LINE 485 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 20) ptr $ val & mpMaxTwilightPoints
{-# LINE 486 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 22) ptr $ val & mpMaxStorage
{-# LINE 487 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & mpMaxFunctionDefs
{-# LINE 488 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 26) ptr $ val & mpMaxInstructionDefs
{-# LINE 489 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 28) ptr $ val & mpMaxStackElements
{-# LINE 490 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 30) ptr $ val & mpMaxSizeOfInstructions
{-# LINE 491 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 32) ptr $ val & mpMaxComponentElements
{-# LINE 492 "FreeType/Format/TrueType/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 34) ptr $ val & mpMaxComponentDepth
{-# LINE 493 "FreeType/Format/TrueType/Types.hsc" #-}



type FT_Sfnt_Tag = Word32
{-# LINE 497 "FreeType/Format/TrueType/Types.hsc" #-}