Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.