2.2.2.2.1.1.2.15 FastGlyph (FASTGLYPH_ORDER)

The FastGlyph Primary Drawing Order encodes a single glyph at a specified position. This primary drawing order is a fast way of outputting a single glyph and bypasses having to send a Cache Glyph Secondary Drawing Order (see sections 2.2.2.2.1.2.5 and 2.2.2.2.1.2.6) followed by a GlyphIndex (section 2.2.2.2.1.1.2.13) or FastIndex (section 2.2.2.2.1.1.2.14) Primary Drawing Order.

 Encoding order number: 24 (0x18)
 Negotiation order number: 24 (0x18)
 Number of fields: 15
 Number of field encoding bytes: 2
 Maximum encoded field length: 285 bytes
            


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

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 (variable)

Y (variable)

...

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): Text color described by using a Generic Color (section 2.2.2.2.1.1.1.8) structure.

ForeColor (3 bytes): The opaque rectangle color described by using a Generic Color (section 2.2.2.2.1.1.1.8) structure.

BkLeft (variable): The left coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).

BkTop (variable): The top coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).

BkRight (variable): The right coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).

BkBottom (variable): The bottom coordinate of the text background rectangle specified by using a Coord Field (section 2.2.2.2.1.1.1.1).

OpLeft (variable): The 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 -32768. For details on the opaque rectangle encoding flags, see the OpTop field of the FastIndex (section 2.2.2.2.1.1.2.14) Primary Drawing Order.

OpRight (variable): The right 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 BkRight.

OpBottom (variable): The bottom 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 -32768 if OpTop contains opaque rectangle encoding flags (see the OpTop field).

X (variable): A 16-bit, signed integer. The x-coordinate of the point where the origin of the starting glyph MUST be positioned, specified by 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 (variable): A 16-bit, signed integer. The y-coordinate of the point where the origin of the starting glyph MUST be positioned, specified by 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. If the size of this VariableBytes field is 1 byte, it contains a 1-byte glyph cache index from which the glyph data MUST be retrieved. However, if the size is larger than 1 byte, this field contains a Cache Glyph Data - Revision 2 (section 2.2.2.2.1.2.6.1) structure. The glyph data MUST be stored in the glyph cache specified by the cacheId field in the entry indicated by the cacheIndex field of the glyph data. The Cache Glyph Data - Revision 2 structure MUST be followed by 2 bytes of padding that MAY<2> contain a little-endian encoded Unicode character representing the glyph (this Unicode character MUST NOT be null-terminated).

All glyph cache indices MUST be greater than or equal to 0, and less than the maximum number of entries allowed in the glyph cache with the ID specified by the cacheId field. The maximum number of entries allowed in each of the ten glyph caches is specified in the GlyphCache field of the Glyph Cache Capability Set ([MS-RDPBCGR] section 2.2.7.1.8).