{-# LINE 1 "FreeType/Support/Module.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TemplateHaskell #-}
module FreeType.Support.Module
(
FT_Module
, FT_Module_Constructor
, FT_Module_Destructor
, FT_Module_Requester
, FT_Module_Interface
, FT_Module_Class (..)
, ft_Add_Module
, ft_Get_Module
, ft_Remove_Module
, ft_Add_Default_Modules
, ft_Property_Set
, ft_Property_Get
, ft_Set_Default_Properties
, ft_New_Library
, ft_Done_Library
, ft_Reference_Library
, FT_Renderer
, FT_Renderer_Class (..)
, ft_Get_Renderer
, ft_Set_Renderer
, ft_Set_Debug_Hook
, FT_Driver
, FT_DebugHook_Func
, pattern FT_DEBUG_HOOK_TRUETYPE
) where
import FreeType.Core.Base.Types
import FreeType.Core.Types.Types
import FreeType.Exception.Internal
import FreeType.Support.Module.Internal
import FreeType.Support.Module.Types
import FreeType.Support.System.Types
import Foreign.C.String
import Foreign.Ptr
ft_Add_Module
:: FT_Library
-> Ptr FT_Module_Class
-> IO ()
ft_Add_Module =
autoError "ft_Add_Module" ft_Add_Module'
ft_Get_Module
:: FT_Library
-> String
-> IO (Maybe FT_Module)
ft_Get_Module lib name =
withCString name $ \namePtr -> do
modul <- ft_Get_Module' lib $ castPtr namePtr
return $ if modul == nullPtr
then Nothing
else Just modul
ft_Remove_Module
:: FT_Library
-> FT_Module
-> IO ()
ft_Remove_Module =
autoError "ft_Remove_Module" ft_Remove_Module'
foreign import ccall "FT_Add_Default_Modules"
ft_Add_Default_Modules
:: FT_Library
-> IO ()
ft_Property_Set
:: FT_Library
-> String
-> String
-> Ptr ()
-> IO ()
ft_Property_Set lib modul prop valPtr =
withCString modul $ \modulPtr ->
withCString prop $ \propPtr ->
ftError "ft_Property_Set"
$ ft_Property_Set' lib (castPtr modulPtr) (castPtr propPtr) valPtr
ft_Property_Get
:: FT_Library
-> String
-> String
-> Ptr ()
-> IO ()
ft_Property_Get lib modul prop valPtr =
withCString modul $ \modulPtr ->
withCString prop $ \propPtr ->
ftError "ft_Property_Get"
$ ft_Property_Get' lib (castPtr modulPtr) (castPtr propPtr) valPtr
foreign import ccall "FT_Set_Default_Properties"
ft_Set_Default_Properties
:: FT_Library
-> IO ()
ft_New_Library
:: FT_Memory
-> IO FT_Library
ft_New_Library =
autoAllocaError "ft_New_Library" ft_New_Library'
ft_Done_Library
:: FT_Library
-> IO ()
ft_Done_Library =
autoError "ft_Done_Library" ft_Done_Library'
ft_Reference_Library
:: FT_Library
-> IO ()
ft_Reference_Library =
autoError "ft_Reference_Library" ft_Reference_Library'
ft_Get_Renderer
:: FT_Library
-> FT_Glyph_Format
-> IO (Maybe FT_Renderer)
ft_Get_Renderer lib format = do
renderer <- ft_Get_Renderer' lib format
return $ if renderer == nullPtr
then Nothing
else Just renderer
ft_Set_Renderer
:: FT_Library
-> FT_Renderer
-> FT_UInt
-> Ptr FT_Parameter
-> IO ()
ft_Set_Renderer =
autoError "ft_Set_Renderer" ft_Set_Renderer'
ft_Set_Debug_Hook
:: FT_Library
-> FT_UInt
-> FT_DebugHook_Func
-> IO ()
ft_Set_Debug_Hook lib index hook = do
hookPtr <- ft_DebugHook_Func hook
ft_Set_Debug_Hook' lib index hookPtr
freeHaskellFunPtr hookPtr
pattern FT_DEBUG_HOOK_TRUETYPE
:: (Eq a, Num a) => a
pattern FT_DEBUG_HOOK_TRUETYPE = 0
{-# LINE 211 "FreeType/Support/Module.hsc" #-}