kb-text-shape
Safe HaskellNone
LanguageGHC2021

KB.Text.Shape.FFI.API.Segmentation

Synopsis

Documentation

This is a quick guess that stops at the first glyph that has a strong script/direction associated to it.

It is convenient, but only works if you are sure your input text is mono-script and mono-direction.

kbts_GuessTextProperties Source #

Arguments

:: Ptr ()

Text

-> CInt

TextSizeInBytes

-> TextFormat 
-> Ptr Direction 
-> Ptr Script 
-> IO () 
void kbts_GuessTextProperties(void *Text, int TextSizeInBytes, kbts_text_format Format, kbts_direction *Direction, kbts_script *Script);

kbts_GuessTextPropertiesUtf32 Source #

Arguments

:: Ptr CInt 
-> CInt

Utf32Count

-> Ptr Direction 
-> Ptr Script 
-> IO () 
void kbts_GuessTextPropertiesUtf32(const int *Utf32, int Utf32Count, kbts_direction *Direction, kbts_script *Script);

kbts_GuessTextPropertiesUtf8 Source #

Arguments

:: Ptr CChar 
-> CInt

Utf8Length

-> Ptr Direction 
-> Ptr Script 
-> IO () 
void kbts_GuessTextPropertiesUtf8(const char *Utf8, int Utf8Length, kbts_direction *Direction, kbts_script *Script);

kbts_BreakBegin Source #

Arguments

:: BreakState 
-> Direction

ParagraphDirection

-> JapaneseLineBreakStyle 
-> BreakConfigFlags 
-> IO () 
void kbts_BreakBegin(kbts_break_state *State, kbts_direction ParagraphDirection, kbts_japanese_line_break_style JapaneseLineBreakStyle, kbts_break_config_flags ConfigFlags);

kbts_BreakAddCodepoint Source #

Arguments

:: BreakState 
-> CInt

Codepoint

-> CInt

PositionIncrement

-> CInt

EndOfText

-> IO () 
void kbts_BreakAddCodepoint(kbts_break_state *State, int Codepoint, int PositionIncrement, int EndOfText);

kbts_BreakEnd :: BreakState -> IO () Source #

void kbts_BreakEnd(kbts_break_state *State);

kbts_Break :: BreakState -> Ptr Break -> IO CInt Source #

int kbts_Break(kbts_break_state *State, kbts_break *Break);

kbts_BreakEntireString Source #

Arguments

:: Direction 
-> JapaneseLineBreakStyle 
-> BreakConfigFlags 
-> Ptr ()

Input

-> CInt

InputSizeInBytes

-> TextFormat 
-> Ptr Break 
-> CInt

BreakCapacity

-> Ptr CInt

BreakCount

-> Ptr BreakFlags 
-> CInt

BreakFlagCapacity

-> Ptr CInt

BreakFlagCount

-> IO () 
void kbts_BreakEntireString(kbts_direction Direction, kbts_japanese_line_break_style JapaneseLineBreakStyle, kbts_break_config_flags ConfigFlags, const void *Input, int InputSizeInBytes, kbts_text_format InputFormat, kbts_break *Breaks, int BreakCapacity, int *BreakCount, kbts_break_flags *BreakFlags, int BreakFlagCapacity, int *BreakFlagCount);

kbts_BreakEntireStringUtf32 Source #

Arguments

:: Direction 
-> JapaneseLineBreakStyle 
-> BreakConfigFlags 
-> Ptr ()

Input

-> CInt

Utf32Count

-> Ptr Break 
-> CInt

BreakCapacity

-> Ptr CInt

BreakCount

-> Ptr BreakFlags 
-> CInt

BreakFlagCapacity

-> Ptr CInt

BreakFlagCount

-> IO () 
void kbts_BreakEntireStringUtf32(kbts_direction Direction, kbts_japanese_line_break_style JapaneseLineBreakStyle, kbts_break_config_flags ConfigFlags, const int *Utf32, int Utf32Count, kbts_break *Breaks, int BreakCapacity, int *BreakCount, kbts_break_flags *BreakFlags, int BreakFlagCapacity, int *BreakFlagCount);

kbts_BreakEntireStringUtf8 Source #

Arguments

:: Direction 
-> JapaneseLineBreakStyle 
-> BreakConfigFlags 
-> Ptr ()

Input

-> CInt

Utf8Length

-> IO () 
void kbts_BreakEntireStringUtf8(kbts_direction Direction, kbts_japanese_line_break_style JapaneseLineBreakStyle, kbts_break_config_flags ConfigFlags, const char *Utf8, int Utf8Length, kbts_break *Breaks, int BreakCapacity, int *BreakCount, kbts_break_flags *BreakFlags, int BreakFlagCapacity, int *BreakFlagCount);