{-# LINE 1 "FreeType/Support/Outline/Types.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
module FreeType.Support.Outline.Types
( module FreeType.Support.Outline.Types
, FT_Outline (..)
) where
import FreeType.Circular.Types
import FreeType.Core.Types.Types
import Data.Int
import Data.Function ((&))
import Data.Word
import Foreign.Storable
import Foreign.Ptr
type FT_Orientation = Word32
{-# LINE 22 "FreeType/Support/Outline/Types.hsc" #-}
data FT_Outline_Funcs = FT_Outline_Funcs
{ ofMove_to :: FT_Outline_MoveToFunc
, ofLine_to :: FT_Outline_LineToFunc
, ofConic_to :: FT_Outline_ConicToFunc
, ofCubic_to :: FT_Outline_CubicToFunc
, ofShift :: Int32
{-# LINE 31 "FreeType/Support/Outline/Types.hsc" #-}
, ofDelta :: FT_Pos
}
instance Storable FT_Outline_Funcs where
sizeOf _ = sizeOf (undefined :: FT_Outline_Funcs')
alignment _ = alignment (undefined :: FT_Outline_Funcs')
peek ptr = do
FT_Outline_Funcs' move_to line_to conic_to cubic_to shift delta <- peek $ castPtr ptr
return $ FT_Outline_Funcs
{ ofMove_to = ft_Outline_MoveToFunc' move_to
, ofLine_to = ft_Outline_LineToFunc' line_to
, ofConic_to = ft_Outline_ConicToFunc' conic_to
, ofCubic_to = ft_Outline_CubicToFunc' cubic_to
, ofShift = shift
, ofDelta = delta
}
poke ptr (FT_Outline_Funcs move_to line_to conic_to cubic_to shift delta) = do
move_toF <- ft_Outline_MoveToFunc move_to
line_toF <- ft_Outline_LineToFunc line_to
conic_toF <- ft_Outline_ConicToFunc conic_to
cubic_toF <- ft_Outline_CubicToFunc cubic_to
poke (castPtr ptr) $ FT_Outline_Funcs'
{ oftMove_to = move_toF
, oftLine_to = line_toF
, oftConic_to = conic_toF
, oftCubic_to = cubic_toF
, oftShift = shift
, oftDelta = delta
}
freeHaskellFunPtr move_toF
freeHaskellFunPtr line_toF
freeHaskellFunPtr conic_toF
freeHaskellFunPtr cubic_toF
data FT_Outline_Funcs' = FT_Outline_Funcs'
{ oftMove_to :: FunPtr FT_Outline_MoveToFunc
, oftLine_to :: FunPtr FT_Outline_LineToFunc
, oftConic_to :: FunPtr FT_Outline_ConicToFunc
, oftCubic_to :: FunPtr FT_Outline_CubicToFunc
, oftShift :: Int32
{-# LINE 75 "FreeType/Support/Outline/Types.hsc" #-}
, oftDelta :: FT_Pos
}
instance Storable FT_Outline_Funcs' where
sizeOf _ = (48)
{-# LINE 80 "FreeType/Support/Outline/Types.hsc" #-}
alignment _ = 8
{-# LINE 81 "FreeType/Support/Outline/Types.hsc" #-}
peek ptr =
FT_Outline_Funcs'
<$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 85 "FreeType/Support/Outline/Types.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 86 "FreeType/Support/Outline/Types.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr
{-# LINE 87 "FreeType/Support/Outline/Types.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr
{-# LINE 88 "FreeType/Support/Outline/Types.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 32) ptr
{-# LINE 89 "FreeType/Support/Outline/Types.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 90 "FreeType/Support/Outline/Types.hsc" #-}
poke ptr val = do
(\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & oftMove_to
{-# LINE 93 "FreeType/Support/Outline/Types.hsc" #-}
(\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & oftLine_to
{-# LINE 94 "FreeType/Support/Outline/Types.hsc" #-}
(\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr $ val & oftConic_to
{-# LINE 95 "FreeType/Support/Outline/Types.hsc" #-}
(\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr $ val & oftCubic_to
{-# LINE 96 "FreeType/Support/Outline/Types.hsc" #-}
(\hsc_ptr -> pokeByteOff hsc_ptr 32) ptr $ val & oftShift
{-# LINE 97 "FreeType/Support/Outline/Types.hsc" #-}
(\hsc_ptr -> pokeByteOff hsc_ptr 40) ptr $ val & oftDelta
{-# LINE 98 "FreeType/Support/Outline/Types.hsc" #-}
type FT_Outline_MoveToFunc = Ptr FT_Vector
-> Ptr ()
-> IO Int32
{-# LINE 104 "FreeType/Support/Outline/Types.hsc" #-}
foreign import ccall "wrapper"
ft_Outline_MoveToFunc :: FT_Outline_MoveToFunc -> IO (FunPtr FT_Outline_MoveToFunc)
foreign import ccall "dynamic"
ft_Outline_MoveToFunc' :: FunPtr FT_Outline_MoveToFunc -> FT_Outline_MoveToFunc
type FT_Outline_LineToFunc = Ptr FT_Vector
-> Ptr ()
-> IO Int32
{-# LINE 116 "FreeType/Support/Outline/Types.hsc" #-}
foreign import ccall "wrapper"
ft_Outline_LineToFunc :: FT_Outline_LineToFunc -> IO (FunPtr FT_Outline_LineToFunc)
foreign import ccall "dynamic"
ft_Outline_LineToFunc' :: FunPtr FT_Outline_LineToFunc -> FT_Outline_LineToFunc
type FT_Outline_ConicToFunc = Ptr FT_Vector
-> Ptr FT_Vector
-> Ptr ()
-> IO Int32
{-# LINE 129 "FreeType/Support/Outline/Types.hsc" #-}
foreign import ccall "wrapper"
ft_Outline_ConicToFunc :: FT_Outline_ConicToFunc -> IO (FunPtr FT_Outline_ConicToFunc)
foreign import ccall "dynamic"
ft_Outline_ConicToFunc' :: FunPtr FT_Outline_ConicToFunc -> FT_Outline_ConicToFunc
type FT_Outline_CubicToFunc = Ptr FT_Vector
-> Ptr FT_Vector
-> Ptr FT_Vector
-> Ptr ()
-> IO Int32
{-# LINE 143 "FreeType/Support/Outline/Types.hsc" #-}
foreign import ccall "wrapper"
ft_Outline_CubicToFunc :: FT_Outline_CubicToFunc -> IO (FunPtr FT_Outline_CubicToFunc)
foreign import ccall "dynamic"
ft_Outline_CubicToFunc' :: FunPtr FT_Outline_CubicToFunc -> FT_Outline_CubicToFunc