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

module FreeType.Format.WinFNT.Types where

import           FreeType.Core.Types.Types

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




data FT_WinFNT_HeaderRec = FT_WinFNT_HeaderRec
                             { wfnthrVersion               :: FT_UShort
                             , wfnthrFile_size             :: FT_ULong
                             , wfnthrCopyright             :: FT_Byte
                             , wfnthrFile_type             :: FT_UShort
                             , wfnthrNominal_point_size    :: FT_UShort
                             , wfnthrVertical_resolution   :: FT_UShort
                             , wfnthrHorizontal_resolution :: FT_UShort
                             , wfnthrAscent                :: FT_UShort
                             , wfnthrInternal_leading      :: FT_UShort
                             , wfnthrExternal_leading      :: FT_UShort
                             , wfnthrItalic                :: FT_Byte
                             , wfnthrUnderline             :: FT_Byte
                             , wfnthrStrike_out            :: FT_Byte
                             , wfnthrWeight                :: FT_UShort
                             , wfnthrCharset               :: FT_Byte
                             , wfnthrPixel_width           :: FT_UShort
                             , wfnthrPixel_height          :: FT_UShort
                             , wfnthrPitch_and_family      :: FT_Byte
                             , wfnthrAvg_width             :: FT_UShort
                             , wfnthrMax_width             :: FT_UShort
                             , wfnthrFirst_char            :: FT_Byte
                             , wfnthrLast_char             :: FT_Byte
                             , wfnthrDefault_char          :: FT_Byte
                             , wfnthrBreak_char            :: FT_Byte
                             , wfnthrBytes_per_row         :: FT_UShort
                             , wfnthrDevice_offset         :: FT_ULong
                             , wfnthrFace_name_offset      :: FT_ULong
                             , wfnthrBits_pointer          :: FT_ULong
                             , wfnthrBits_offset           :: FT_ULong
                             , wfnthrReserved              :: FT_Byte
                             , wfnthrFlags                 :: FT_ULong
                             , wfnthrA_space               :: FT_UShort
                             , wfnthrB_space               :: FT_UShort
                             , wfnthrC_space               :: FT_UShort
                             , wfnthrColor_table_offset    :: FT_UShort
                             , wfnthrReserved1             :: FT_ULong
                             }

instance Storable FT_WinFNT_HeaderRec where
  sizeOf _    = (208)
{-# LINE 55 "FreeType/Format/WinFNT/Types.hsc" #-}
  alignment _ = 8
{-# LINE 56 "FreeType/Format/WinFNT/Types.hsc" #-}

  peek ptr =
    FT_WinFNT_HeaderRec
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 60 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 61 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 62 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 76) ptr
{-# LINE 63 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 78) ptr
{-# LINE 64 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 80) ptr
{-# LINE 65 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 82) ptr
{-# LINE 66 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 84) ptr
{-# LINE 67 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 86) ptr
{-# LINE 68 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 88) ptr
{-# LINE 69 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 90) ptr
{-# LINE 70 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 91) ptr
{-# LINE 71 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 92) ptr
{-# LINE 72 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 94) ptr
{-# LINE 73 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 96) ptr
{-# LINE 74 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 98) ptr
{-# LINE 75 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 100) ptr
{-# LINE 76 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 102) ptr
{-# LINE 77 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 104) ptr
{-# LINE 78 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 106) ptr
{-# LINE 79 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 108) ptr
{-# LINE 80 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 109) ptr
{-# LINE 81 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 110) ptr
{-# LINE 82 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 111) ptr
{-# LINE 83 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 112) ptr
{-# LINE 84 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 120) ptr
{-# LINE 85 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 128) ptr
{-# LINE 86 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 136) ptr
{-# LINE 87 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 144) ptr
{-# LINE 88 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 152) ptr
{-# LINE 89 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 160) ptr
{-# LINE 90 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 168) ptr
{-# LINE 91 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 170) ptr
{-# LINE 92 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 172) ptr
{-# LINE 93 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 174) ptr
{-# LINE 94 "FreeType/Format/WinFNT/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 176) ptr
{-# LINE 95 "FreeType/Format/WinFNT/Types.hsc" #-}

  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & wfnthrVersion
{-# LINE 98 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & wfnthrFile_size
{-# LINE 99 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & wfnthrCopyright
{-# LINE 100 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 76) ptr $ val & wfnthrFile_type
{-# LINE 101 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 78) ptr $ val & wfnthrNominal_point_size
{-# LINE 102 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 80) ptr $ val & wfnthrVertical_resolution
{-# LINE 103 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 82) ptr $ val & wfnthrHorizontal_resolution
{-# LINE 104 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 84) ptr $ val & wfnthrAscent
{-# LINE 105 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 86) ptr $ val & wfnthrInternal_leading
{-# LINE 106 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 88) ptr $ val & wfnthrExternal_leading
{-# LINE 107 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 90) ptr $ val & wfnthrItalic
{-# LINE 108 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 91) ptr $ val & wfnthrUnderline
{-# LINE 109 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 92) ptr $ val & wfnthrStrike_out
{-# LINE 110 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 94) ptr $ val & wfnthrWeight
{-# LINE 111 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 96) ptr $ val & wfnthrCharset
{-# LINE 112 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 98) ptr $ val & wfnthrPixel_width
{-# LINE 113 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 100) ptr $ val & wfnthrPixel_height
{-# LINE 114 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 102) ptr $ val & wfnthrPitch_and_family
{-# LINE 115 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 104) ptr $ val & wfnthrAvg_width
{-# LINE 116 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 106) ptr $ val & wfnthrMax_width
{-# LINE 117 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 108) ptr $ val & wfnthrFirst_char
{-# LINE 118 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 109) ptr $ val & wfnthrLast_char
{-# LINE 119 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 110) ptr $ val & wfnthrDefault_char
{-# LINE 120 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 111) ptr $ val & wfnthrBreak_char
{-# LINE 121 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 112) ptr $ val & wfnthrBytes_per_row
{-# LINE 122 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 120) ptr $ val & wfnthrDevice_offset
{-# LINE 123 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 128) ptr $ val & wfnthrFace_name_offset
{-# LINE 124 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 136) ptr $ val & wfnthrBits_pointer
{-# LINE 125 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 144) ptr $ val & wfnthrBits_offset
{-# LINE 126 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 152) ptr $ val & wfnthrReserved
{-# LINE 127 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 160) ptr $ val & wfnthrFlags
{-# LINE 128 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 168) ptr $ val & wfnthrA_space
{-# LINE 129 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 170) ptr $ val & wfnthrB_space
{-# LINE 130 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 172) ptr $ val & wfnthrC_space
{-# LINE 131 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 174) ptr $ val & wfnthrColor_table_offset
{-# LINE 132 "FreeType/Format/WinFNT/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 176) ptr $ val & wfnthrReserved1
{-# LINE 133 "FreeType/Format/WinFNT/Types.hsc" #-}



type FT_WinFNT_Header = Ptr FT_WinFNT_HeaderRec