{-# LINE 1 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LINE 2 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}
module Graphics.Rendering.FreeType.Internal.Parameter
( FT_Parameter(..)
) where

import Foreign

import Graphics.Rendering.FreeType.Internal.PrimitiveTypes


{-# LINE 11 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}

{-# LINE 12 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}


{-# LINE 14 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}

{-# LINE 15 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}

data FT_Parameter = FT_Parameter
  { tag   :: FT_ULong
  , data_ :: FT_Pointer
  }

instance Storable FT_Parameter where
  sizeOf    _ = (8)
{-# LINE 23 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}
  alignment _ = 4
{-# LINE 24 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}
  peek ptr = do
    tag'   <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr
{-# LINE 26 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}
    data_' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr
{-# LINE 27 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}
    return $ FT_Parameter
      { tag = tag'
      , data_ = data_'
      }
  poke ptr val = do
    ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr (tag val)
{-# LINE 33 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr (data_ val)
{-# LINE 34 "Graphics/Rendering/FreeType/Internal/Parameter.hsc" #-}