Platform SDK: International Features

SCRIPT_ANALYSIS

The SCRIPT_ANALYSIS structure describes an item, that is, a portion of a Unicode string. This structure is filled by ScriptItemize, which breaks a Unicode string into individually shapeable items. The structure also includes a copy of the Unicode algorithm state (SCRIPT_STATE).

typedef struct tag_SCRIPT_ANALYSIS {
  WORD eScript      :10; 
  WORD fRTL          :1; 
  WORD fLayoutRTL    :1; 
  WORD fLinkBefore   :1; 
  WORD fLinkAfter    :1; 
  WORD fLogicalOrder :1; 
  WORD fNoGlyphIndex :1; 
  SCRIPT_STATE s ; 
} SCRIPT_ANALYSIS;

Members

eScript
Opaque value identifying which engine Uniscribe will use when calling the ScriptShape, ScriptPlace, and ScriptTextOut functions for this item. The value of eScript is undefined and will change in future releases, but attributes of eScript may be obtained by calling ScriptGetProperties.

To disable shaping, set this parameter to SCRIPT_UNDEFINED.

fRTL
Rendering direction. Normally identical to the parity of the Unicode embedding level, but it may differ if overridden by GetCharacterPlacement legacy support.
fLayoutRTL
Logical direction, whether left-to-right or right-to-left. Although this is usually the same as fRTL, for a number in a RTL run, fRTL is False (because digits are always displayed LTR), but fLayoutRTL is True (because the number is read as part of the RTL sequence).
fLinkBefore
If set, the shaping engine will shape the first character of this item as if it were joining with a previous character. Set by ScriptItemize, it may be overridden before calling ScriptShape.
fLinkAfter
If set, the shaping engine will shape the last character of this item as if it were joining with a subsequent character. Set by ScriptItemize, it may be overridden before calling ScriptShape.
fLogicalOrder
If set, the shaping engine will generate all glyph-related arrays in logical order. By default, glyph-related arrays are in visual order, the first array entry corresponding to the leftmost glyph. Set to FALSE by ScriptItemize, it may be overridden before calling ScriptShape.
fNoGlyphIndex
Typically FALSE. Set to TRUE for bitmap, vector, and device fonts; and for Asian scripts. It may be set to TRUE on input to ScriptShape to disable use of glyphs for this item. Additionally, ScriptShape will set it to TRUE for an hdc containing symbolic, unrecognized, and device fonts.

Disabling glyphing disables complex script shaping. When set, shaping and placing for this item is implemented directly by calls to GetTextExtentExPoint and ExtTextOut.

s
A SCRIPT_STATE structure.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Header: Declared in Usp10.h.

See Also

Uniscribe Overview, Uniscribe Structures, ExtTextOut, GetCharacterPlacement, GetTextExtentExPoint, ScriptGetProperties, ScriptItemize, ScriptPlace, ScriptShape, ScriptTextOut, SCRIPT_STATE