CartoType C++ API 7.8.2, 2022-03-25
for Windows, Linux, Qt and other platforms supporting C++ development
Classes | Public Member Functions | Static Public Member Functions | List of all members
CartoType::CBidiEngine Class Reference

#include <cartotype_bidi.h>

Public Member Functions

void Order (uint16_t *aText, size_t aLength, size_t &aNewLength, TBidiParDir aParDir, bool aParStart, int32_t *aUserData=nullptr)
 
bool RightToLeft ()
 

Static Public Member Functions

static int32_t ShapeArabic (uint16_t *aText, size_t aLength)
 

Detailed Description

An engine for doing bidirectional reordering and contextual shaping, and storing state when reordering and shaping a series of lines.

Member Function Documentation

◆ Order()

void CartoType::CBidiEngine::Order ( uint16_t *  aText,
size_t  aLength,
size_t &  aNewLength,
TBidiParDir  aParDir,
bool  aParStart,
int32_t *  aUserData = nullptr 
)

Perform bidirectional reordering, removing any bidirectional control characters. The text is reordered in place and either stays the same length or gets shorter. If aParStart is true, the state is initialised and the paragraph direction is resolved using aParDir, otherwise the existing state is used. If aUserData is non-null it contains user data that is reordered in the same way as the text.

◆ RightToLeft()

bool CartoType::CBidiEngine::RightToLeft ( )
inline

Return the resolved direction; meaningful only after Order has been called at least once.

◆ ShapeArabic()

int32_t CartoType::CBidiEngine::ShapeArabic ( uint16_t *  aText,
size_t  aLength 
)
static

Perform Arabic shaping and lam-alef ligation in place. Return the number of lam-alef ligations performed; in each such case an alef has been replaced by 0xFFFF, which can then be removed by the caller.


The documentation for this class was generated from the following files: