{-# LINE 1 "src/KB/Text/Shape/FFI/API/Context.hsc" #-}
module KB.Text.Shape.FFI.API.Context where
import Prelude hiding (id, error)
import Foreign
import Foreign.C
import KB.Text.Shape.FFI.Allocator (Allocator)
import KB.Text.Shape.FFI.Handles
import KB.Text.Shape.FFI.Enums
import KB.Text.Shape.FFI.Structs
foreign import ccall unsafe "kbts_SizeOfShapeContext" kbts_SizeOfShapeContext :: CInt
foreign import ccall safe "kbts_PlaceShapeContext" kbts_PlaceShapeContext
:: FunPtr Allocator
-> Ptr ()
-> Ptr ()
-> IO ShapeContext
foreign import ccall unsafe "kbts_PlaceShapeContextFixedMemory" kbts_PlaceShapeContextFixedMemory
:: Ptr ()
-> CInt
-> IO ShapeContext
foreign import ccall safe "kbts_CreateShapeContext" kbts_CreateShapeContext
:: FunPtr Allocator
-> Ptr ()
-> IO ShapeContext
foreign import ccall unsafe "kbts_DestroyShapeContext" kbts_DestroyShapeContext
:: ShapeContext
-> IO ()
{-# LINE 45 "src/KB/Text/Shape/FFI/API/Context.hsc" #-}
foreign import ccall unsafe "kbts_ShapePushFontFromFile" kbts_ShapePushFontFromFile
:: ShapeContext
-> CString
-> CInt
-> IO Font
{-# LINE 52 "src/KB/Text/Shape/FFI/API/Context.hsc" #-}
foreign import ccall unsafe "kbts_ShapePushFontFromMemory" kbts_ShapePushFontFromMemory
:: ShapeContext
-> Ptr ()
-> CSize
-> CInt
-> IO Font
foreign import ccall unsafe "kbts_ShapePushFont" kbts_ShapePushFont
:: ShapeContext
-> Font
-> IO Font
foreign import ccall unsafe "kbts_ShapePopFont" kbts_ShapePopFont
:: ShapeContext
-> IO Font
foreign import ccall unsafe "kbts_ShapeBegin" kbts_ShapeBegin
:: ShapeContext
-> Direction
-> Language
-> IO ()
foreign import ccall unsafe "kbts_ShapeEnd" kbts_ShapeEnd
:: ShapeContext
-> IO ()
foreign import ccall unsafe "kbts_ShapeRun" kbts_ShapeRun
:: ShapeContext
-> Ptr Run
-> IO Int
foreign import ccall unsafe "kbts_ShapePushFeature" kbts_ShapePushFeature
:: ShapeContext
-> FeatureTag
-> CInt
-> IO ()
foreign import ccall unsafe "kbts_ShapePopFeature" kbts_ShapePopFeature
:: ShapeContext
-> FeatureTag
-> IO CInt
foreign import ccall unsafe "kbts_ShapeCodepoint" kbts_ShapeCodepoint
:: ShapeContext
-> CInt
-> IO ()
foreign import ccall unsafe "kbts_ShapeCodepointWithUserId" kbts_ShapeCodepointWithUserId
:: ShapeContext
-> CInt
-> CInt
-> IO ()
foreign import ccall unsafe "kbts_ShapeUtf32" kbts_ShapeUtf32
:: ShapeContext
-> Ptr CInt
-> CInt
-> IO ()
foreign import ccall unsafe "kbts_ShapeUtf32WithUserId" kbts_ShapeUtf32WithUserId
:: ShapeContext
-> Ptr CInt
-> CInt
-> CInt
-> CInt
-> IO ()
foreign import ccall unsafe "kbts_ShapeUtf8" kbts_ShapeUtf8
:: ShapeContext
-> Ptr CChar
-> CInt
-> UserIdGenerationMode
-> IO ()
foreign import ccall unsafe "kbts_ShapeUtf8WithUserId" kbts_ShapeUtf8WithUserId
:: ShapeContext
-> Ptr CChar
-> CInt
-> CInt
-> UserIdGenerationMode
-> IO ()
foreign import ccall unsafe "kbts_ShapeError" kbts_ShapeError
:: ShapeContext
-> ShapeError
foreign import ccall unsafe "kbts_ShapeBeginManualRuns" kbts_ShapeBeginManualRuns
:: ShapeContext
-> IO ()
foreign import ccall unsafe "kbts_ShapeNextManualRun" kbts_ShapeNextManualRun
:: ShapeContext
-> Direction
-> Script
-> IO ()
foreign import ccall unsafe "kbts_ShapeEndManualRuns" kbts_ShapeEndManualRuns
:: ShapeContext
-> IO ()
foreign import ccall unsafe "kbts_ShapeManualBreak" kbts_ShapeManualBreak
:: ShapeContext
-> IO ()
foreign import ccall unsafe "hs_ShapeCurrentCodepointsIterator" hs_ShapeCurrentCodepointsIterator
:: ShapeContext
-> Ptr CodepointIterator
-> IO ()
foreign import ccall unsafe "kbts_ShapeCodepointIteratorIsValid" kbts_ShapeCodepointIteratorIsValid
:: Ptr CodepointIterator
-> IO Int
foreign import ccall unsafe "kbts_ShapeCodepointIteratorNext" kbts_ShapeCodepointIteratorNext
:: Ptr CodepointIterator
-> Ptr Codepoint
-> Ptr Int
-> IO Int
foreign import ccall unsafe "kbts_ShapeGetShapeCodepoint" kbts_ShapeGetShapeCodepoint
:: ShapeContext
-> CInt
-> Ptr Codepoint
-> IO Int