{-# LINE 1 "FreeType/Core/Base.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE PatternSynonyms #-}
module FreeType.Core.Base
(
FT_Library
, FT_Face
, FT_Size
, FT_GlyphSlot
, FT_CharMap
, FT_Encoding
, pattern FT_ENCODING_NONE
, pattern FT_ENCODING_MS_SYMBOL
, pattern FT_ENCODING_UNICODE
, pattern FT_ENCODING_SJIS
, pattern FT_ENCODING_PRC
, pattern FT_ENCODING_BIG5
, pattern FT_ENCODING_WANSUNG
, pattern FT_ENCODING_JOHAB
, pattern FT_ENCODING_ADOBE_STANDARD
, pattern FT_ENCODING_ADOBE_EXPERT
, pattern FT_ENCODING_ADOBE_CUSTOM
, pattern FT_ENCODING_ADOBE_LATIN_1
, pattern FT_ENCODING_OLD_LATIN_2
, pattern FT_ENCODING_APPLE_ROMAN
, FT_FaceRec (..)
, pattern FT_HAS_HORIZONTAL
, pattern FT_HAS_VERTICAL
, pattern FT_HAS_KERNING
, pattern FT_HAS_FIXED_SIZES
, pattern FT_HAS_GLYPH_NAMES
, pattern FT_HAS_COLOR
, pattern FT_HAS_MULTIPLE_MASTERS
, pattern FT_IS_SFNT
, pattern FT_IS_SCALABLE
, pattern FT_IS_FIXED_WIDTH
, pattern FT_IS_CID_KEYED
, pattern FT_IS_TRICKY
, pattern FT_IS_NAMED_INSTANCE
, pattern FT_IS_VARIATION
, FT_SizeRec (..)
, FT_Size_Metrics (..)
, FT_GlyphSlotRec (..)
, FT_Glyph_Metrics (..)
, FT_SubGlyph
, FT_Bitmap_Size (..)
, ft_Init_FreeType
, ft_With_FreeType
, ft_Done_FreeType
, ft_New_Face
, ft_With_Face
, ft_Done_Face
, ft_Reference_Face
, ft_New_Memory_Face
, ft_With_Memory_Face
, ft_Face_Properties
, ft_Open_Face
, FT_Open_Args (..)
, FT_Parameter (..)
, ft_Attach_File
, ft_Attach_Stream
, ft_Set_Char_Size
, ft_Set_Pixel_Sizes
, ft_Request_Size
, ft_Select_Size
, FT_Size_Request_Type
, pattern FT_SIZE_REQUEST_TYPE_NOMINAL
, pattern FT_SIZE_REQUEST_TYPE_REAL_DIM
, pattern FT_SIZE_REQUEST_TYPE_BBOX
, pattern FT_SIZE_REQUEST_TYPE_CELL
, pattern FT_SIZE_REQUEST_TYPE_SCALES
, FT_Size_RequestRec (..)
, FT_Size_Request
, ft_Set_Transform
, ft_Load_Glyph
, ft_Get_Char_Index
, ft_Get_Next_Char
, ft_Get_Name_Index
, ft_Load_Char
, pattern FT_LOAD_TARGET_MODE
, ft_Render_Glyph
, FT_Render_Mode
, pattern FT_RENDER_MODE_NORMAL
, pattern FT_RENDER_MODE_LIGHT
, pattern FT_RENDER_MODE_MONO
, pattern FT_RENDER_MODE_LCD
, pattern FT_RENDER_MODE_LCD_V
, ft_Get_Kerning
, FT_Kerning_Mode
, pattern FT_KERNING_DEFAULT
, pattern FT_KERNING_UNFITTED
, pattern FT_KERNING_UNSCALED
, ft_Get_Track_Kerning
, ft_Get_Glyph_Name
, ft_Get_Postscript_Name
, FT_CharMapRec (..)
, ft_Select_Charmap
, ft_Set_Charmap
, ft_Get_Charmap_Index
, ft_Get_FSType_Flags
, ft_Get_SubGlyph_Info
, FT_Face_Internal
, FT_Size_Internal
, FT_Slot_Internal
, pattern FT_FACE_FLAG_SCALABLE
, pattern FT_FACE_FLAG_FIXED_SIZES
, pattern FT_FACE_FLAG_FIXED_WIDTH
, pattern FT_FACE_FLAG_SFNT
, pattern FT_FACE_FLAG_HORIZONTAL
, pattern FT_FACE_FLAG_VERTICAL
, pattern FT_FACE_FLAG_KERNING
, pattern FT_FACE_FLAG_FAST_GLYPHS
, pattern FT_FACE_FLAG_MULTIPLE_MASTERS
, pattern FT_FACE_FLAG_GLYPH_NAMES
, pattern FT_FACE_FLAG_EXTERNAL_STREAM
, pattern FT_FACE_FLAG_HINTER
, pattern FT_FACE_FLAG_CID_KEYED
, pattern FT_FACE_FLAG_TRICKY
, pattern FT_FACE_FLAG_COLOR
, pattern FT_FACE_FLAG_VARIATION
, pattern FT_STYLE_FLAG_ITALIC
, pattern FT_STYLE_FLAG_BOLD
, pattern FT_OPEN_MEMORY
, pattern FT_OPEN_STREAM
, pattern FT_OPEN_PATHNAME
, pattern FT_OPEN_DRIVER
, pattern FT_OPEN_PARAMS
, pattern FT_LOAD_DEFAULT
, pattern FT_LOAD_NO_SCALE
, pattern FT_LOAD_NO_HINTING
, pattern FT_LOAD_RENDER
, pattern FT_LOAD_NO_BITMAP
, pattern FT_LOAD_VERTICAL_LAYOUT
, pattern FT_LOAD_FORCE_AUTOHINT
, pattern FT_LOAD_CROP_BITMAP
, pattern FT_LOAD_PEDANTIC
, pattern FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH
, pattern FT_LOAD_NO_RECURSE
, pattern FT_LOAD_IGNORE_TRANSFORM
, pattern FT_LOAD_MONOCHROME
, pattern FT_LOAD_LINEAR_DESIGN
, pattern FT_LOAD_NO_AUTOHINT
, pattern FT_LOAD_COLOR
, pattern FT_LOAD_COMPUTE_METRICS
, pattern FT_LOAD_BITMAP_METRICS_ONLY
, pattern FT_LOAD_TARGET_NORMAL
, pattern FT_LOAD_TARGET_LIGHT
, pattern FT_LOAD_TARGET_MONO
, pattern FT_LOAD_TARGET_LCD
, pattern FT_LOAD_TARGET_LCD_V
, pattern FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS
, pattern FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES
, pattern FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID
, pattern FT_SUBGLYPH_FLAG_SCALE
, pattern FT_SUBGLYPH_FLAG_XY_SCALE
, pattern FT_SUBGLYPH_FLAG_2X2
, pattern FT_SUBGLYPH_FLAG_USE_MY_METRICS
, pattern FT_FSTYPE_INSTALLABLE_EMBEDDING
, pattern FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING
, pattern FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING
, pattern FT_FSTYPE_EDITABLE_EMBEDDING
, pattern FT_FSTYPE_NO_SUBSETTING
, pattern FT_FSTYPE_BITMAP_EMBEDDING_ONLY
) where
import FreeType.Core.Base.Internal
import FreeType.Core.Base.Types
import FreeType.Core.Types.Types
import FreeType.Exception.Internal
import Control.Exception
import Data.Bits
import Foreign.C.String
import Foreign.Marshal
import Foreign.Ptr
import Foreign.Storable
pattern FT_HAS_HORIZONTAL :: FT_Face -> IO Bool
pattern FT_HAS_HORIZONTAL <- _
where
FT_HAS_HORIZONTAL face = do
face' <- peek face
case FT_FACE_FLAG_HORIZONTAL .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_HAS_VERTICAL :: FT_Face -> IO Bool
pattern FT_HAS_VERTICAL <- _
where
FT_HAS_VERTICAL face = do
face' <- peek face
case FT_FACE_FLAG_VERTICAL .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_HAS_KERNING :: FT_Face -> IO Bool
pattern FT_HAS_KERNING <- _
where
FT_HAS_KERNING face = do
face' <- peek face
case FT_FACE_FLAG_KERNING .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_HAS_FIXED_SIZES :: FT_Face -> IO Bool
pattern FT_HAS_FIXED_SIZES <- _
where
FT_HAS_FIXED_SIZES face = do
face' <- peek face
case FT_FACE_FLAG_FIXED_SIZES .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_HAS_GLYPH_NAMES :: FT_Face -> IO Bool
pattern FT_HAS_GLYPH_NAMES <- _
where
FT_HAS_GLYPH_NAMES face = do
face' <- peek face
case FT_FACE_FLAG_GLYPH_NAMES .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_HAS_COLOR :: FT_Face -> IO Bool
pattern FT_HAS_COLOR <- _
where
FT_HAS_COLOR face = do
face' <- peek face
case FT_FACE_FLAG_COLOR .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_HAS_MULTIPLE_MASTERS :: FT_Face -> IO Bool
pattern FT_HAS_MULTIPLE_MASTERS <- _
where
FT_HAS_MULTIPLE_MASTERS face = do
face' <- peek face
case FT_FACE_FLAG_MULTIPLE_MASTERS .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_IS_SFNT :: FT_Face -> IO Bool
pattern FT_IS_SFNT <- _
where
FT_IS_SFNT face = do
face' <- peek face
case FT_FACE_FLAG_SFNT .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_IS_SCALABLE :: FT_Face -> IO Bool
pattern FT_IS_SCALABLE <- _
where
FT_IS_SCALABLE face = do
face' <- peek face
case FT_FACE_FLAG_SCALABLE .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_IS_FIXED_WIDTH :: FT_Face -> IO Bool
pattern FT_IS_FIXED_WIDTH <- _
where
FT_IS_FIXED_WIDTH face = do
face' <- peek face
case FT_FACE_FLAG_FIXED_WIDTH .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_IS_CID_KEYED :: FT_Face -> IO Bool
pattern FT_IS_CID_KEYED <- _
where
FT_IS_CID_KEYED face = do
face' <- peek face
case FT_FACE_FLAG_CID_KEYED .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_IS_TRICKY :: FT_Face -> IO Bool
pattern FT_IS_TRICKY <- _
where
FT_IS_TRICKY face = do
face' <- peek face
case FT_FACE_FLAG_TRICKY .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_IS_NAMED_INSTANCE :: FT_Face -> IO Bool
pattern FT_IS_NAMED_INSTANCE <- _
where
FT_IS_NAMED_INSTANCE face = do
face' <- peek face
case 0x7FFF0000 .&. frFace_flags face' of
0 -> return False
_ -> return True
pattern FT_IS_VARIATION :: FT_Face -> IO Bool
pattern FT_IS_VARIATION <- _
where
FT_IS_VARIATION face = do
face' <- peek face
case FT_FACE_FLAG_VARIATION .&. frFace_flags face' of
0 -> return False
_ -> return True
ft_Init_FreeType :: IO FT_Library
ft_Init_FreeType =
autoAllocaError "ft_Init_FreeType" ft_Init_FreeType'
ft_With_FreeType :: (FT_Library -> IO a) -> IO a
ft_With_FreeType =
bracket ft_Init_FreeType ft_Done_FreeType
ft_Done_FreeType
:: FT_Library
-> IO ()
ft_Done_FreeType =
autoError "ft_Done_FreeType" ft_Done_FreeType'
ft_New_Face
:: FT_Library
-> FilePath
-> FT_Long
-> IO FT_Face
ft_New_Face lib path index =
withCString path $ \pathPtr ->
alloca $ \facePtr -> do
ftError "ft_New_Face" $ ft_New_Face' lib (castPtr pathPtr) index facePtr
peek facePtr
ft_With_Face
:: FT_Library
-> FilePath
-> FT_Long
-> (FT_Face -> IO a)
-> IO a
ft_With_Face lib path index = bracket (ft_New_Face lib path index) ft_Done_Face
ft_Done_Face
:: FT_Face
-> IO ()
ft_Done_Face =
autoError "ft_Done_Face" ft_Done_Face'
ft_Reference_Face
:: FT_Face
-> IO ()
ft_Reference_Face =
autoError "ft_Reference_Face" ft_Reference_Face'
ft_New_Memory_Face
:: FT_Library
-> Ptr FT_Byte
-> FT_Long
-> FT_Long
-> IO FT_Face
ft_New_Memory_Face =
autoAllocaError "ft_New_Memory_Face" ft_New_Memory_Face'
ft_With_Memory_Face
:: FT_Library
-> Ptr FT_Byte
-> FT_Long
-> FT_Long
-> (FT_Face -> IO a)
-> IO a
ft_With_Memory_Face lib base size index =
bracket (ft_New_Memory_Face lib base size index) ft_Done_Face
ft_Face_Properties
:: FT_Face
-> FT_UInt
-> Ptr FT_Parameter
-> IO ()
ft_Face_Properties =
autoError "ft_Face_Properties" ft_Face_Properties'
ft_Open_Face
:: FT_Library
-> Ptr FT_Open_Args
-> FT_Long
-> IO FT_Face
ft_Open_Face =
autoAllocaError "ft_Open_Face" ft_Open_Face'
ft_Attach_File
:: FT_Face
-> FilePath
-> IO ()
ft_Attach_File face path =
withCString path $
ftError "ft_Attach_File" . ft_Attach_File' face . castPtr
ft_Attach_Stream
:: FT_Face
-> Ptr FT_Open_Args
-> IO ()
ft_Attach_Stream =
autoError "ft_Attach_Stream" ft_Attach_Stream'
ft_Set_Char_Size
:: FT_Face
-> FT_F26Dot6
-> FT_F26Dot6
-> FT_UInt
-> FT_UInt
-> IO ()
ft_Set_Char_Size =
autoError "ft_Set_Char_Size" ft_Set_Char_Size'
ft_Set_Pixel_Sizes
:: FT_Face
-> FT_UInt
-> FT_UInt
-> IO ()
ft_Set_Pixel_Sizes =
autoError "ft_Set_Pixel_Sizes" ft_Set_Pixel_Sizes'
ft_Request_Size
:: FT_Face
-> FT_Size_Request
-> IO ()
ft_Request_Size =
autoError "ft_Request_Size" ft_Request_Size'
ft_Select_Size
:: FT_Face
-> FT_Int
-> IO ()
ft_Select_Size =
autoError "ft_Select_Size" ft_Select_Size'
pattern FT_SIZE_REQUEST_TYPE_NOMINAL
, FT_SIZE_REQUEST_TYPE_REAL_DIM
, FT_SIZE_REQUEST_TYPE_BBOX
, FT_SIZE_REQUEST_TYPE_CELL
, FT_SIZE_REQUEST_TYPE_SCALES
:: (Eq a, Num a) => a
pattern FT_SIZE_REQUEST_TYPE_NOMINAL = 0
{-# LINE 603 "FreeType/Core/Base.hsc" #-}
pattern FT_SIZE_REQUEST_TYPE_REAL_DIM = 1
{-# LINE 604 "FreeType/Core/Base.hsc" #-}
pattern FT_SIZE_REQUEST_TYPE_BBOX = 2
{-# LINE 605 "FreeType/Core/Base.hsc" #-}
pattern FT_SIZE_REQUEST_TYPE_CELL = 3
{-# LINE 606 "FreeType/Core/Base.hsc" #-}
pattern FT_SIZE_REQUEST_TYPE_SCALES = 4
{-# LINE 607 "FreeType/Core/Base.hsc" #-}
ft_Set_Transform
:: FT_Face
-> Maybe FT_Matrix
-> Maybe FT_Vector
-> IO ()
ft_Set_Transform face mayMat mayVec =
let mayAlloca Nothing = ($ nullPtr)
mayAlloca (Just val) = with val
in mayAlloca mayMat $ \matPtr ->
mayAlloca mayVec $
ft_Set_Transform' face matPtr
ft_Load_Glyph
:: FT_Face
-> FT_UInt
-> FT_Int32
-> IO ()
ft_Load_Glyph =
autoError "ft_Load_Glyph" $ ft_Load_Glyph'
foreign import ccall "FT_Get_Char_Index"
ft_Get_Char_Index
:: FT_Face
-> FT_ULong
-> IO FT_UInt
ft_Get_Next_Char
:: FT_Face
-> Maybe FT_ULong
-> IO (FT_ULong, FT_UInt)
ft_Get_Next_Char face Nothing =
alloca $ \ptr ->
(,)
<$> ft_Get_First_Char' face ptr
<*> peek ptr
ft_Get_Next_Char face (Just code) =
alloca $ \ptr ->
(,)
<$> ft_Get_Next_Char' face code ptr
<*> peek ptr
foreign import ccall "FT_Get_Name_Index"
ft_Get_Name_Index
:: FT_Face
-> Ptr FT_String
-> IO FT_UInt
ft_Load_Char
:: FT_Face
-> FT_ULong
-> FT_Int32
-> IO ()
ft_Load_Char =
autoError "ft_Load_Char" ft_Load_Char'
pattern FT_LOAD_TARGET_MODE :: FT_Int32 -> FT_Render_Mode
pattern FT_LOAD_TARGET_MODE <- _
where
FT_LOAD_TARGET_MODE x = fromIntegral $ (x `shiftR` 16) .&. 15
ft_Render_Glyph
:: FT_GlyphSlot
-> FT_Render_Mode
-> IO ()
ft_Render_Glyph =
autoError "ft_Render_Glyph" ft_Render_Glyph'
pattern FT_RENDER_MODE_NORMAL
, FT_RENDER_MODE_LIGHT
, FT_RENDER_MODE_MONO
, FT_RENDER_MODE_LCD
, FT_RENDER_MODE_LCD_V
:: (Eq a, Num a) => a
pattern FT_RENDER_MODE_NORMAL = 0
{-# LINE 706 "FreeType/Core/Base.hsc" #-}
pattern FT_RENDER_MODE_LIGHT = 1
{-# LINE 707 "FreeType/Core/Base.hsc" #-}
pattern FT_RENDER_MODE_MONO = 2
{-# LINE 708 "FreeType/Core/Base.hsc" #-}
pattern FT_RENDER_MODE_LCD = 3
{-# LINE 709 "FreeType/Core/Base.hsc" #-}
pattern FT_RENDER_MODE_LCD_V = 4
{-# LINE 710 "FreeType/Core/Base.hsc" #-}
ft_Get_Kerning
:: FT_Face
-> FT_UInt
-> FT_UInt
-> FT_UInt
-> IO FT_Vector
ft_Get_Kerning =
autoAllocaError "ft_Get_Kerning" ft_Get_Kerning'
pattern FT_KERNING_DEFAULT
, FT_KERNING_UNFITTED
, FT_KERNING_UNSCALED
:: (Eq a, Num a) => a
pattern FT_KERNING_DEFAULT = 0
{-# LINE 729 "FreeType/Core/Base.hsc" #-}
pattern FT_KERNING_UNFITTED = 1
{-# LINE 730 "FreeType/Core/Base.hsc" #-}
pattern FT_KERNING_UNSCALED = 2
{-# LINE 731 "FreeType/Core/Base.hsc" #-}
ft_Get_Track_Kerning
:: FT_Face
-> FT_Fixed
-> FT_Int
-> IO FT_Fixed
ft_Get_Track_Kerning =
autoAllocaError "ft_Get_Track_Kerning" ft_Get_Track_Kerning'
ft_Get_Glyph_Name
:: FT_Face
-> FT_UInt
-> FT_UInt
-> IO String
ft_Get_Glyph_Name face index buffer_max =
allocaArray (fromIntegral buffer_max) $ \buffer -> do
ftError "ft_Get_Glyph_Name" $ ft_Get_Glyph_Name' face index (castPtr buffer) buffer_max
peekCString buffer
ft_Get_Postscript_Name
:: FT_Face
-> IO String
ft_Get_Postscript_Name face =
peekCString . castPtr =<< ft_Get_Postscript_Name' face
ft_Select_Charmap
:: FT_Face
-> FT_Encoding
-> IO ()
ft_Select_Charmap =
autoError "ft_Select_Charmap" ft_Select_Charmap'
ft_Set_Charmap
:: FT_Face
-> FT_CharMap
-> IO ()
ft_Set_Charmap =
autoError "ft_Set_Charmap" ft_Set_Charmap'
foreign import ccall "FT_Get_Charmap_Index"
ft_Get_Charmap_Index
:: FT_CharMap
-> IO FT_Int
foreign import ccall "FT_Get_FSType_Flags"
ft_Get_FSType_Flags
:: FT_Face
-> IO FT_UShort
ft_Get_SubGlyph_Info
:: FT_GlyphSlot
-> FT_UInt
-> IO (FT_Int, FT_UInt, FT_Int, FT_Int, FT_Matrix)
ft_Get_SubGlyph_Info glyph index =
alloca $ \p_indexPtr ->
alloca $ \p_flagsPtr ->
alloca $ \p_arg1Ptr ->
alloca $ \p_arg2Ptr ->
alloca $ \p_transformPtr -> do
ftError "ft_Get_SubGlyph_Info" $ ft_Get_SubGlyph_Info' glyph index p_indexPtr p_flagsPtr p_arg1Ptr p_arg2Ptr p_transformPtr
(,,,,)
<$> peek p_indexPtr
<*> peek p_flagsPtr
<*> peek p_arg1Ptr
<*> peek p_arg2Ptr
<*> peek p_transformPtr
pattern FT_FACE_FLAG_SCALABLE
, FT_FACE_FLAG_FIXED_SIZES
, FT_FACE_FLAG_FIXED_WIDTH
, FT_FACE_FLAG_SFNT
, FT_FACE_FLAG_HORIZONTAL
, FT_FACE_FLAG_VERTICAL
, FT_FACE_FLAG_KERNING
, FT_FACE_FLAG_FAST_GLYPHS
, FT_FACE_FLAG_MULTIPLE_MASTERS
, FT_FACE_FLAG_GLYPH_NAMES
, FT_FACE_FLAG_EXTERNAL_STREAM
, FT_FACE_FLAG_HINTER
, FT_FACE_FLAG_CID_KEYED
, FT_FACE_FLAG_TRICKY
, FT_FACE_FLAG_COLOR
, FT_FACE_FLAG_VARIATION
:: (Eq a, Num a) => a
pattern FT_FACE_FLAG_SCALABLE = 1
{-# LINE 835 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_FIXED_SIZES = 2
{-# LINE 836 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_FIXED_WIDTH = 4
{-# LINE 837 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_SFNT = 8
{-# LINE 838 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_HORIZONTAL = 16
{-# LINE 839 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_VERTICAL = 32
{-# LINE 840 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_KERNING = 64
{-# LINE 841 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_FAST_GLYPHS = 128
{-# LINE 842 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_MULTIPLE_MASTERS = 256
{-# LINE 843 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_GLYPH_NAMES = 512
{-# LINE 844 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_EXTERNAL_STREAM = 1024
{-# LINE 845 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_HINTER = 2048
{-# LINE 846 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_CID_KEYED = 4096
{-# LINE 847 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_TRICKY = 8192
{-# LINE 848 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_COLOR = 16384
{-# LINE 849 "FreeType/Core/Base.hsc" #-}
pattern FT_FACE_FLAG_VARIATION = 32768
{-# LINE 850 "FreeType/Core/Base.hsc" #-}
pattern FT_STYLE_FLAG_ITALIC
, FT_STYLE_FLAG_BOLD
:: (Eq a, Num a) => a
pattern FT_STYLE_FLAG_ITALIC = 1
{-# LINE 857 "FreeType/Core/Base.hsc" #-}
pattern FT_STYLE_FLAG_BOLD = 2
{-# LINE 858 "FreeType/Core/Base.hsc" #-}
pattern FT_OPEN_MEMORY
, FT_OPEN_STREAM
, FT_OPEN_PATHNAME
, FT_OPEN_DRIVER
, FT_OPEN_PARAMS
:: (Eq a, Num a) => a
pattern FT_OPEN_MEMORY = 1
{-# LINE 868 "FreeType/Core/Base.hsc" #-}
pattern FT_OPEN_STREAM = 2
{-# LINE 869 "FreeType/Core/Base.hsc" #-}
pattern FT_OPEN_PATHNAME = 4
{-# LINE 870 "FreeType/Core/Base.hsc" #-}
pattern FT_OPEN_DRIVER = 8
{-# LINE 871 "FreeType/Core/Base.hsc" #-}
pattern FT_OPEN_PARAMS = 16
{-# LINE 872 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_DEFAULT
, FT_LOAD_NO_SCALE
, FT_LOAD_NO_HINTING
, FT_LOAD_RENDER
, FT_LOAD_NO_BITMAP
, FT_LOAD_VERTICAL_LAYOUT
, FT_LOAD_FORCE_AUTOHINT
, FT_LOAD_CROP_BITMAP
, FT_LOAD_PEDANTIC
, FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH
, FT_LOAD_NO_RECURSE
, FT_LOAD_IGNORE_TRANSFORM
, FT_LOAD_MONOCHROME
, FT_LOAD_LINEAR_DESIGN
, FT_LOAD_NO_AUTOHINT
, FT_LOAD_COLOR
, FT_LOAD_COMPUTE_METRICS
, FT_LOAD_BITMAP_METRICS_ONLY
:: (Eq a, Num a) => a
pattern FT_LOAD_DEFAULT = 0
{-# LINE 895 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_NO_SCALE = 1
{-# LINE 896 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_NO_HINTING = 2
{-# LINE 897 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_RENDER = 4
{-# LINE 898 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_NO_BITMAP = 8
{-# LINE 899 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_VERTICAL_LAYOUT = 16
{-# LINE 900 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_FORCE_AUTOHINT = 32
{-# LINE 901 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_CROP_BITMAP = 64
{-# LINE 902 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_PEDANTIC = 128
{-# LINE 903 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 512
{-# LINE 904 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_NO_RECURSE = 1024
{-# LINE 905 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_IGNORE_TRANSFORM = 2048
{-# LINE 906 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_MONOCHROME = 4096
{-# LINE 907 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_LINEAR_DESIGN = 8192
{-# LINE 908 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_NO_AUTOHINT = 32768
{-# LINE 909 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_COLOR = 1048576
{-# LINE 910 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_COMPUTE_METRICS = 2097152
{-# LINE 911 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_BITMAP_METRICS_ONLY = 4194304
{-# LINE 912 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_TARGET_NORMAL
, FT_LOAD_TARGET_LIGHT
, FT_LOAD_TARGET_MONO
, FT_LOAD_TARGET_LCD
, FT_LOAD_TARGET_LCD_V
:: (Eq a, Num a) => a
pattern FT_LOAD_TARGET_NORMAL = 0
{-# LINE 922 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_TARGET_LIGHT = 65536
{-# LINE 923 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_TARGET_MONO = 131072
{-# LINE 924 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_TARGET_LCD = 196608
{-# LINE 925 "FreeType/Core/Base.hsc" #-}
pattern FT_LOAD_TARGET_LCD_V = 262144
{-# LINE 926 "FreeType/Core/Base.hsc" #-}
pattern FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS
, FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES
, FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID
, FT_SUBGLYPH_FLAG_SCALE
, FT_SUBGLYPH_FLAG_XY_SCALE
, FT_SUBGLYPH_FLAG_2X2
, FT_SUBGLYPH_FLAG_USE_MY_METRICS
:: (Eq a, Num a) => a
pattern FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS = 1
{-# LINE 938 "FreeType/Core/Base.hsc" #-}
pattern FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES = 2
{-# LINE 939 "FreeType/Core/Base.hsc" #-}
pattern FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID = 4
{-# LINE 940 "FreeType/Core/Base.hsc" #-}
pattern FT_SUBGLYPH_FLAG_SCALE = 8
{-# LINE 941 "FreeType/Core/Base.hsc" #-}
pattern FT_SUBGLYPH_FLAG_XY_SCALE = 64
{-# LINE 942 "FreeType/Core/Base.hsc" #-}
pattern FT_SUBGLYPH_FLAG_2X2 = 128
{-# LINE 943 "FreeType/Core/Base.hsc" #-}
pattern FT_SUBGLYPH_FLAG_USE_MY_METRICS = 512
{-# LINE 944 "FreeType/Core/Base.hsc" #-}
pattern FT_FSTYPE_INSTALLABLE_EMBEDDING
, FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING
, FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING
, FT_FSTYPE_EDITABLE_EMBEDDING
, FT_FSTYPE_NO_SUBSETTING
, FT_FSTYPE_BITMAP_EMBEDDING_ONLY
:: (Eq a, Num a) => a
pattern FT_FSTYPE_INSTALLABLE_EMBEDDING = 0
{-# LINE 955 "FreeType/Core/Base.hsc" #-}
pattern FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING = 2
{-# LINE 956 "FreeType/Core/Base.hsc" #-}
pattern FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING = 4
{-# LINE 957 "FreeType/Core/Base.hsc" #-}
pattern FT_FSTYPE_EDITABLE_EMBEDDING = 8
{-# LINE 958 "FreeType/Core/Base.hsc" #-}
pattern FT_FSTYPE_NO_SUBSETTING = 256
{-# LINE 959 "FreeType/Core/Base.hsc" #-}
pattern FT_FSTYPE_BITMAP_EMBEDDING_ONLY = 512
{-# LINE 960 "FreeType/Core/Base.hsc" #-}