{-# LINE 1 "FreeType/Format/PFR.hsc" #-}
module FreeType.Format.PFR
(
ft_Get_PFR_Metrics
, ft_Get_PFR_Kerning
, ft_Get_PFR_Advance
) where
import FreeType.Core.Base
import FreeType.Core.Types.Types
import FreeType.Exception.Internal
import FreeType.Format.PFR.Internal
import Foreign.Marshal.Alloc
import Foreign.Ptr
import Foreign.Storable
ft_Get_PFR_Metrics
:: FT_Face
-> IO (Maybe FT_UInt, Maybe FT_UInt, Maybe FT_Fixed, Maybe FT_Fixed)
ft_Get_PFR_Metrics face =
alloca $ \outlinePtr ->
alloca $ \metricsPtr ->
alloca $ \metXPtr ->
alloca $ \metYPtr -> do
ftError "ft_Get_PFR_Metrics"
$ ft_Get_PFR_Metrics' face outlinePtr metricsPtr metXPtr metYPtr
(,,,)
<$> nothingOnNULL outlinePtr
<*> nothingOnNULL metricsPtr
<*> nothingOnNULL metXPtr
<*> nothingOnNULL metYPtr
where
nothingOnNULL a = if a == nullPtr
then return Nothing
else Just <$> peek a
ft_Get_PFR_Kerning
:: FT_Face
-> FT_UInt
-> FT_UInt
-> IO FT_Vector
ft_Get_PFR_Kerning =
autoAllocaError "ft_Get_PFR_Kerning" ft_Get_PFR_Kerning'
ft_Get_PFR_Advance
:: FT_Face
-> FT_UInt
-> IO FT_Pos
ft_Get_PFR_Advance =
autoAllocaError "ft_Get_PFR_Advance" ft_Get_PFR_Advance'