freetype2-0.2.0: FreeType/Cache/Types.hsc
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# OPTIONS_HADDOCK hide #-}
module FreeType.Cache.Types where
import FreeType.Core.Base.Types
import FreeType.Core.Types.Types
import Data.Function ((&))
import Foreign.Ptr
import Foreign.Storable
#include "ft2build.h"
#include FT_CACHE_H
data FTC_ManagerRec
type FTC_Manager = Ptr FTC_ManagerRec
type FTC_FaceID = FT_Pointer
type FTC_Face_Requester = FunPtr (FTC_FaceID -> FT_Library -> FT_Pointer -> Ptr FT_Face -> IO FT_Error)
data FTC_NodeRec
type FTC_Node = Ptr FTC_NodeRec
data FTC_ImageCacheRec
type FTC_ImageCache = Ptr FTC_ImageCacheRec
type FTC_SBit = Ptr FTC_SBitRec
data FTC_SBitCacheRec
type FTC_SBitCache = Ptr FTC_SBitCacheRec
data FTC_CMapCacheRec
type FTC_CMapCache = Ptr FTC_CMapCacheRec
data FTC_ScalerRec = FTC_ScalerRec
{ srFace_id :: FTC_FaceID
, srWidth :: FT_UInt
, srHeight :: FT_UInt
, srPixel :: FT_Int
, srX_res :: FT_UInt
, srY_res :: FT_UInt
}
instance Storable FTC_ScalerRec where
sizeOf _ = #size struct FTC_ScalerRec_
alignment _ = #alignment struct FTC_ScalerRec_
peek ptr =
FTC_ScalerRec
<$> #{peek struct FTC_ScalerRec_, face_id} ptr
<*> #{peek struct FTC_ScalerRec_, width } ptr
<*> #{peek struct FTC_ScalerRec_, height } ptr
<*> #{peek struct FTC_ScalerRec_, pixel } ptr
<*> #{peek struct FTC_ScalerRec_, x_res } ptr
<*> #{peek struct FTC_ScalerRec_, y_res } ptr
poke ptr val = do
#{poke struct FTC_ScalerRec_, face_id} ptr $ val & srFace_id
#{poke struct FTC_ScalerRec_, width } ptr $ val & srWidth
#{poke struct FTC_ScalerRec_, height } ptr $ val & srHeight
#{poke struct FTC_ScalerRec_, pixel } ptr $ val & srPixel
#{poke struct FTC_ScalerRec_, x_res } ptr $ val & srX_res
#{poke struct FTC_ScalerRec_, y_res } ptr $ val & srY_res
type FTC_Scaler = Ptr FTC_ScalerRec
data FTC_ImageTypeRec = FTC_ImageTypeRec
{ itrFace_id :: FTC_FaceID
, itrWidth :: FT_UInt
, itrHeight :: FT_UInt
, itrFlags :: FT_Int32
}
instance Storable FTC_ImageTypeRec where
sizeOf _ = #size struct FTC_ImageTypeRec_
alignment _ = #alignment struct FTC_ImageTypeRec_
peek ptr =
FTC_ImageTypeRec
<$> #{peek struct FTC_ImageTypeRec_, face_id} ptr
<*> #{peek struct FTC_ImageTypeRec_, width } ptr
<*> #{peek struct FTC_ImageTypeRec_, height } ptr
<*> #{peek struct FTC_ImageTypeRec_, flags } ptr
poke ptr val = do
#{poke struct FTC_ImageTypeRec_, face_id} ptr $ val & itrFace_id
#{poke struct FTC_ImageTypeRec_, width } ptr $ val & itrWidth
#{poke struct FTC_ImageTypeRec_, height } ptr $ val & itrHeight
#{poke struct FTC_ImageTypeRec_, flags } ptr $ val & itrFlags
type FTC_ImageType = Ptr FTC_ImageTypeRec
data FTC_SBitRec = FTC_SBitRec
{ sbrWidth :: FT_Byte
, sbrHeight :: FT_Byte
, sbrLeft :: FT_Char
, sbrTop :: FT_Char
, sbrFormat :: FT_Byte
, sbrMax_grays :: FT_Byte
, sbrPitch :: FT_Short
, sbrXadvance :: FT_Char
, sbrYadvance :: FT_Char
, sbrBuffer :: Ptr FT_Byte
}
instance Storable FTC_SBitRec where
sizeOf _ = #size struct FTC_SBitRec_
alignment _ = #alignment struct FTC_SBitRec_
peek ptr =
FTC_SBitRec
<$> #{peek struct FTC_SBitRec_, width } ptr
<*> #{peek struct FTC_SBitRec_, height } ptr
<*> #{peek struct FTC_SBitRec_, left } ptr
<*> #{peek struct FTC_SBitRec_, top } ptr
<*> #{peek struct FTC_SBitRec_, format } ptr
<*> #{peek struct FTC_SBitRec_, max_grays} ptr
<*> #{peek struct FTC_SBitRec_, pitch } ptr
<*> #{peek struct FTC_SBitRec_, xadvance } ptr
<*> #{peek struct FTC_SBitRec_, yadvance } ptr
<*> #{peek struct FTC_SBitRec_, buffer } ptr
poke ptr val = do
#{poke struct FTC_SBitRec_, width } ptr $ val & sbrWidth
#{poke struct FTC_SBitRec_, height } ptr $ val & sbrHeight
#{poke struct FTC_SBitRec_, left } ptr $ val & sbrLeft
#{poke struct FTC_SBitRec_, top } ptr $ val & sbrTop
#{poke struct FTC_SBitRec_, format } ptr $ val & sbrFormat
#{poke struct FTC_SBitRec_, max_grays} ptr $ val & sbrMax_grays
#{poke struct FTC_SBitRec_, pitch } ptr $ val & sbrPitch
#{poke struct FTC_SBitRec_, xadvance } ptr $ val & sbrXadvance
#{poke struct FTC_SBitRec_, yadvance } ptr $ val & sbrYadvance
#{poke struct FTC_SBitRec_, buffer } ptr $ val & sbrBuffer