RetroArch
Public Attributes | List of all members
DWRITE_SCRIPT_PROPERTIES Struct Reference

Script-specific properties for caret navigation and justification. More...

#include <dwrite_1.h>

Public Attributes

UINT32 isoScriptCode
 The standardized four character code for the given script. Note these only include the general Unicode scripts, not any additional ISO 15924 scripts for bibliographic distinction (for example, Fraktur Latin vs Gaelic Latin). http://unicode.org/iso15924/iso15924-codes.html More...
 
UINT32 isoScriptNumber
 The standardized numeric code, ranging 0-999. http://unicode.org/iso15924/iso15924-codes.html More...
 
UINT32 clusterLookahead
 Number of characters to estimate look-ahead for complex scripts. Latin and all Kana are generally 1. Indic scripts are up to 15, and most others are 8. Note that combining marks and variation selectors can produce clusters longer than these look-aheads, so this estimate is considered typical language use. Diacritics must be tested explicitly separately. More...
 
UINT32 justificationCharacter
 Appropriate character to elongate the given script for justification. More...
 
UINT32 restrictCaretToClusters: 1
 Restrict the caret to whole clusters, like Thai and Devanagari. Scripts such as Arabic by default allow navigation between clusters. Others like Thai always navigate across whole clusters. More...
 
UINT32 usesWordDividers: 1
 The language uses dividers between words, such as spaces between Latin or the Ethiopic wordspace. More...
 
UINT32 isDiscreteWriting: 1
 The characters are discrete units from each other. This includes both block scripts and clustered scripts. More...
 
UINT32 isBlockWriting: 1
 The language is a block script, expanding between characters. More...
 
UINT32 isDistributedWithinCluster: 1
 The language is justified within glyph clusters, not just between glyph clusters. One such as the character sequence is Thai Lu and Sara Am (U+E026, U+E033) which form a single cluster but still expand between them. More...
 
UINT32 isConnectedWriting: 1
 The script's clusters are connected to each other (such as the baseline-linked Devanagari), and no separation should be added between characters. Note that cursively linked scripts like Arabic are also connected (but not all connected scripts are cursive). More...
 
UINT32 isCursiveWriting: 1
 The script is naturally cursive (Arabic/Syriac), meaning it uses other justification methods like kashida extension rather than intercharacter spacing. Note that although other scripts like Latin and Japanese may actually support handwritten cursive forms, they are not considered cursive scripts. More...
 
UINT32 reserved: 25
 

Detailed Description

Script-specific properties for caret navigation and justification.

Member Data Documentation

◆ clusterLookahead

UINT32 DWRITE_SCRIPT_PROPERTIES::clusterLookahead

Number of characters to estimate look-ahead for complex scripts. Latin and all Kana are generally 1. Indic scripts are up to 15, and most others are 8. Note that combining marks and variation selectors can produce clusters longer than these look-aheads, so this estimate is considered typical language use. Diacritics must be tested explicitly separately.

◆ isBlockWriting

UINT32 DWRITE_SCRIPT_PROPERTIES::isBlockWriting

The language is a block script, expanding between characters.

Examples: Chinese, Japanese, Korean, Bopomofo.

◆ isConnectedWriting

UINT32 DWRITE_SCRIPT_PROPERTIES::isConnectedWriting

The script's clusters are connected to each other (such as the baseline-linked Devanagari), and no separation should be added between characters. Note that cursively linked scripts like Arabic are also connected (but not all connected scripts are cursive).

Examples: Devanagari, Arabic, Syriac, Bengali, Gurmukhi, Ogham Excludes: Latin, Chinese, Thaana

◆ isCursiveWriting

UINT32 DWRITE_SCRIPT_PROPERTIES::isCursiveWriting

The script is naturally cursive (Arabic/Syriac), meaning it uses other justification methods like kashida extension rather than intercharacter spacing. Note that although other scripts like Latin and Japanese may actually support handwritten cursive forms, they are not considered cursive scripts.

Examples: Arabic, Syriac, Mongolian Excludes: Thaana, Devanagari, Latin, Chinese

◆ isDiscreteWriting

UINT32 DWRITE_SCRIPT_PROPERTIES::isDiscreteWriting

The characters are discrete units from each other. This includes both block scripts and clustered scripts.

Examples: Latin, Greek, Cyrillic, Hebrew, Chinese, Thai

◆ isDistributedWithinCluster

UINT32 DWRITE_SCRIPT_PROPERTIES::isDistributedWithinCluster

The language is justified within glyph clusters, not just between glyph clusters. One such as the character sequence is Thai Lu and Sara Am (U+E026, U+E033) which form a single cluster but still expand between them.

Examples: Thai, Lao, Khmer

◆ isoScriptCode

UINT32 DWRITE_SCRIPT_PROPERTIES::isoScriptCode

The standardized four character code for the given script. Note these only include the general Unicode scripts, not any additional ISO 15924 scripts for bibliographic distinction (for example, Fraktur Latin vs Gaelic Latin). http://unicode.org/iso15924/iso15924-codes.html

◆ isoScriptNumber

UINT32 DWRITE_SCRIPT_PROPERTIES::isoScriptNumber

The standardized numeric code, ranging 0-999. http://unicode.org/iso15924/iso15924-codes.html

◆ justificationCharacter

UINT32 DWRITE_SCRIPT_PROPERTIES::justificationCharacter

Appropriate character to elongate the given script for justification.

Examples: Arabic - U+0640 Tatweel Ogham - U+1680 Ogham Space Mark

◆ reserved

UINT32 DWRITE_SCRIPT_PROPERTIES::reserved

◆ restrictCaretToClusters

UINT32 DWRITE_SCRIPT_PROPERTIES::restrictCaretToClusters

Restrict the caret to whole clusters, like Thai and Devanagari. Scripts such as Arabic by default allow navigation between clusters. Others like Thai always navigate across whole clusters.

◆ usesWordDividers

UINT32 DWRITE_SCRIPT_PROPERTIES::usesWordDividers

The language uses dividers between words, such as spaces between Latin or the Ethiopic wordspace.

Examples: Latin, Greek, Devanagari, Ethiopic Excludes: Chinese, Korean, Thai.


The documentation for this struct was generated from the following file: