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

import Foreign.Storable

import Graphics.Rendering.FreeType.Internal.PrimitiveTypes


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

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

data FT_Vector = FT_Vector
  { x :: FT_Pos
  , y :: FT_Pos
  }
  deriving (Read, Show, Eq)

instance Storable FT_Vector where
  sizeOf _    = (8)
{-# LINE 21 "Graphics/Rendering/FreeType/Internal/Vector.hsc" #-}
  alignment _ = alignment (undefined :: FT_Pos)
  peek ptr = do
    x' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr
{-# LINE 24 "Graphics/Rendering/FreeType/Internal/Vector.hsc" #-}
    y' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr
{-# LINE 25 "Graphics/Rendering/FreeType/Internal/Vector.hsc" #-}
    return $! FT_Vector x' y'
  poke ptr val = do
    ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr (x val)
{-# LINE 28 "Graphics/Rendering/FreeType/Internal/Vector.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr (y val)
{-# LINE 29 "Graphics/Rendering/FreeType/Internal/Vector.hsc" #-}