2.2.2.2.1.1.2.14 FastIndex (FASTINDEX_ORDER)
The FastIndex Primary Drawing Order encodes a set of glyph indices at a specified position. This order is an improved version of the GlyphIndex (section 2.2.2.2.1.1.2.13) Primary Drawing Order. The regular GlyphIndex order contains five brush fields that the FastIndex order does not: BrushOrgX, BrushOrgY, BrushStyle, BrushHatch, and BrushExtra. These extra fields MUST all be implicitly assumed to exist and contain default values of zero (implying that a solid color brush will be used).
-
Encoding order number: 19 (0x13) Negotiation order number: 19 (0x13) Number of fields: 15 Number of field encoding bytes: 2 Maximum encoded field length: 285 bytes
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cacheId (optional) |
fDrawing (optional) |
BackColor (optional) |
|||||||||||||||||||||||||||||
... |
ForeColor (optional) |
||||||||||||||||||||||||||||||
... |
BkLeft (variable) |
BkTop (variable) |
|||||||||||||||||||||||||||||
... |
BkRight (variable) |
BkBottom (variable) |
|||||||||||||||||||||||||||||
... |
OpLeft (variable) |
OpTop (variable) |
|||||||||||||||||||||||||||||
... |
OpRight (variable) |
OpBottom (variable) |
|||||||||||||||||||||||||||||
... |
X (optional) |
Y (optional) |
|||||||||||||||||||||||||||||
... |
VariableBytes (variable) |
cacheId (1 byte): An 8-bit, unsigned integer. The ID of the glyph cache in which the glyph data MUST be stored. This value MUST be in the range 0 to 9 (inclusive).
fDrawing (2 bytes): A 16-bit, unsigned integer. Combined flAccel and ulCharInc fields from the GlyphIndex (section 2.2.2.2.1.1.2.13) Primary Drawing Order. The high-order byte contains the flAccel field, and the low-order byte contains the ulCharInc field.
BackColor (3 bytes): The text color described by using a Generic Color (section 2.2.2.2.1.1.1.8) structure.
ForeColor (3 bytes): Opaque rectangle color described by using a Generic Color (section 2.2.2.2.1.1.1.8) structure.
BkLeft (variable): Left coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).
BkTop (variable): Top coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).
BkRight (variable): Right coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).
BkBottom (variable): Bottom coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).
OpLeft (variable): Left coordinate of the opaque rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1). This field MUST be set to 0 if it is the same as BkLeft.
OpTop (variable): The top coordinate of the opaque rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).
-
This field MUST contain opaque rectangle encoding flags if the OpBottom field is set to be the value of -32768. In this case, OpTop holds the encoding flags in the low 4 bits.
-
Value
Meaning
OPRECT_BOTTOM_ABSENT
0x01
Bottom coordinate of the opaque rectangle is the same as BkBottom.
OPRECT_RIGHT_ABSENT
0x02
Right coordinate of the opaque rectangle is the same as BkRight.
OPRECT_TOP_ABSENT
0x04
Top coordinate of the opaque rectangle is the same as BkTop.
OPRECT_LEFT_ABSENT
0x08
Left coordinate of the opaque rectangle is the same as BkLeft.
-
The only valid combinations of the encoding flags that are currently supported are as follows:
0x0F: The left, top, right, and bottom coordinates of the opaque rectangle all match the background text rectangle and are absent.
0x0D: The left, top, and bottom coordinates of the opaque rectangle all match the background text rectangle and are absent. The actual value of the right coordinate is present.
OpRight (variable): The right coordinate of the opaque rectangle specified using a Coord Field (section 2.2.2.2.1.1.1.1). This field MUST be set to 0 if it is the same as BkRight.
OpBottom (variable): The bottom coordinate of the opaque rectangle specified using a Coord Field (section 2.2.2.2.1.1.1.1). This field MUST be set to -32768 if OpTop contains opaque rectangle encoding flags (see the OpTop field).
X (2 bytes): A 16-bit, signed integer. The x-coordinate of the point where the origin of the starting glyph MUST be positioned specified using a Coord Field (section 2.2.2.2.1.1.1.1). This field MUST be set to -32768 if it is the same as BkLeft.
Y (2 bytes): A 16-bit, signed integer. The y-coordinate of the point where the origin of the starting glyph MUST be positioned specified using a Coord Field (section 2.2.2.2.1.1.1.1). This field MUST be set to -32768 if it is the same as BkTop.
VariableBytes (variable): A One-Byte Header Variable Field (section 2.2.2.2.1.1.1.2) structure. The contents and format of this field are the same as the VariableBytes field of the GlyphIndex (section 2.2.2.2.1.1.2.13) Primary Drawing Order.