kb-text-shape
Safe HaskellNone
LanguageGHC2021

KB.Text.Shape.FFI.API.Direct

Synopsis

Documentation

kbts_ShapeDirect :: ShapeConfig -> Ptr GlyphStorage -> Direction -> FunPtr Allocator -> Ptr () -> Ptr GlyphIterator -> IO ShapeError Source #

kbts_shape_error kbts_ShapeDirect(kbts_shape_config *Config, kbts_glyph_storage *Storage, kbts_direction RunDirection, kbts_allocator_function *Allocator, void *AllocatorData, kbts_glyph_iterator *Output);

kbts_ShapeDirectFixedMemory Source #

Arguments

:: ShapeConfig 
-> Ptr GlyphStorage 
-> Direction

RunDirection

-> Ptr ()

Memory

-> CInt

MemorySize

-> IO ShapeError 
kbts_shape_error kbts_ShapeDirectFixedMemory(kbts_shape_config *Config, kbts_glyph_storage *Storage, kbts_direction RunDirection, void *Memory, int MemorySize, kbts_glyph_iterator *Output);

hs_FontFromFile Source #

Arguments

:: Ptr CChar

FileName

-> CInt

FontIndex

-> FunPtr Allocator 
-> Ptr ()

AllocatorData

-> Ptr (Ptr ())

FileData

-> Ptr CInt

FileSize

-> Ptr Font 
-> IO LoadFontError 
kbts_font kbts_FontFromFile(const char *FileName, int FontIndex, kbts_allocator_function *Allocator, void *AllocatorData, void **FileData, int *FileSize);

kbts_FontCount Source #

Arguments

:: Ptr ()

FileData

-> CInt

FileSize

-> CInt 
int kbts_FontCount(void *FileData, int FileSize);

hs_FontFromMemory Source #

Arguments

:: Ptr ()

FileData

-> CInt

FileSize

-> CInt

FontIndex

-> FunPtr Allocator 
-> Ptr ()

AllocatorData

-> Font 
-> IO LoadFontError 
kbts_font kbts_FontFromMemory(void *FileData, int FileSize, int FontIndex, kbts_allocator_function *Allocator, void *AllocatorData);

kbts_FreeFont :: Font -> IO () Source #

void kbts_FreeFont(kbts_font *Font);

kbts_FontIsValid :: Font -> CInt Source #

int kbts_FontIsValid(kbts_font *Font);

kbts_LoadFont Source #

Arguments

:: Font 
-> Ptr LoadFontState 
-> Ptr ()

FontData

-> CInt

FontDataSize

-> CInt

FontIndex

-> Ptr Int

ScratchSize_

-> Ptr Int

OutputSize_

-> IO LoadFontError 
kbts_load_font_error kbts_LoadFont(kbts_font *Font, kbts_load_font_state *State, void *FontData, int FontDataSize, int FontIndex, int *ScratchSize_, int *OutputSize_);

kbts_PlaceBlob Source #

Arguments

:: Font 
-> Ptr LoadFontState 
-> Ptr ()

ScratchMemory

-> Ptr ()

OutputMemory

-> IO LoadFontError 
kbts_load_font_error kbts_PlaceBlob(kbts_font *Font, kbts_load_font_state *State, void *ScratchMemory, void *OutputMemory);

kbts_GetFontInfo :: Font -> Ptr FontInfo -> IO () Source #

void kbts_GetFontInfo(kbts_font *Font, kbts_font_info *Info);

kbts_SizeOfShapeConfig :: Font -> Script -> Language -> CInt Source #

int kbts_SizeOfShapeConfig(kbts_font *Font, kbts_script Script, kbts_language Language);

kbts_PlaceShapeConfig Source #

Arguments

:: Font 
-> Script 
-> Language 
-> Ptr ()

Memory

-> IO ShapeConfig 
kbts_shape_config *kbts_PlaceShapeConfig(kbts_font *Font, kbts_script Script, kbts_language Language, void *Memory);

kbts_CreateShapeConfig :: Font -> Script -> Language -> FunPtr Allocator -> Ptr () -> IO ShapeConfig Source #

kbts_shape_config *kbts_CreateShapeConfig(kbts_font *Font, kbts_script Script, kbts_language Language, kbts_allocator_function *Allocator, void *AllocatorData);

kbts_DestroyShapeConfig :: ShapeConfig -> IO () Source #

void kbts_DestroyShapeConfig(kbts_shape_config *Config);

kbts_InitializeGlyphStorage Source #

Arguments

:: Ptr GlyphStorage 
-> FunPtr Allocator 
-> Ptr ()

AllocatorData

-> IO Int 
int kbts_InitializeGlyphStorage(kbts_glyph_storage *Storage, kbts_allocator_function *Allocator, void *AllocatorData)

kbts_InitializeGlyphStorageFixedMemory Source #

Arguments

:: Ptr GlyphStorage 
-> Ptr ()

Memory

-> CInt

MemorySize

-> IO Int 
int kbts_InitializeGlyphStorageFixedMemory(kbts_glyph_storage *Storage, void *Memory, int MemorySize);

kbts_PushGlyph Source #

Arguments

:: Ptr GlyphStorage 
-> Font 
-> CInt

Codepoint

-> GlyphConfig 
-> CInt 
-> IO (Ptr Glyph) 
kbts_glyph *kbts_PushGlyph(kbts_glyph_storage *Storage, kbts_font *Font, int Codepoint, kbts_glyph_config *Config, int UserId);

kbts_ClearActiveGlyphs :: Ptr GlyphStorage -> IO () Source #

void kbts_ClearActiveGlyphs(kbts_glyph_storage *Storage);

kbts_FreeAllGlyphs :: Ptr GlyphStorage -> IO () Source #

void kbts_FreeAllGlyphs(kbts_glyph_storage *Storage);

hs_CodepointToGlyph Source #

Arguments

:: Font 
-> CInt

Codepoint

-> GlyphConfig 
-> CInt

UserId

-> Ptr Glyph 
-> IO () 

Wrapped kbts_glyph kbts_CodepointToGlyph(kbts_font *Font, int Codepoint, kbts_glyph_config *Config, int UserId);

The original returns struct by value.

kbts_CodepointToGlyphId Source #

Arguments

:: Font 
-> CInt

Codepoint

-> IO Int 
int kbts_CodepointToGlyphId(kbts_font *Font, int Codepoint);

hs_ActiveGlyphIterator :: Ptr GlyphStorage -> Ptr GlyphIterator -> IO () Source #

Wrapped kbts_glyph_iterator kbts_ActiveGlyphIterator(kbts_glyph_storage *Storage);

The original returns struct by value.

kbts_SizeOfGlyphConfig Source #

Arguments

:: Ptr FeatureOverride 
-> CInt

OverrideCount

-> CInt 
int kbts_SizeOfGlyphConfig(kbts_feature_override *Overrides, int OverrideCount);

kbts_PlaceGlyphConfig Source #

Arguments

:: Ptr FeatureOverride 
-> CInt

OverriderCount

-> Ptr ()

Memory

-> IO GlyphConfig 
kbts_glyph_config *kbts_PlaceGlyphConfig(kbts_feature_override *Overrides, int OverrideCount, void *Memory);

kbts_CreateGlyphConfig Source #

Arguments

:: Ptr FeatureOverride 
-> CInt

OverrideCount

-> FunPtr Allocator 
-> Ptr ()

AllocatorData

-> IO GlyphConfig 
kbts_glyph_config *kbts_CreateGlyphConfig(kbts_feature_override *Overrides, int OverrideCount, kbts_allocator_function *Allocator, void *AllocatorData);

kbts_DestroyGlyphConfig :: GlyphConfig -> IO () Source #

void kbts_DestroyGlyphConfig(kbts_glyph_config *Config);