2.3.9 OpenGL Record Types

The OpenGL record types specify OpenGL functions [OPENGL].

The following are EMF OpenGL record types.<80>

Name

Section

Description

EMR_GLSBOUNDEDRECORD

2.3.9.1

Specifies an OpenGL function with a bounding rectangle for output.

EMR_GLSRECORD

2.3.9.2

Specifies an OpenGL function.

The generic structure of OpenGL records is specified as follows.


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

Type

Size

OpenGLRecordBuffer (variable)

...

Type (4 bytes): An unsigned integer that defines the type of record. The OpenGL record types are listed in the following table. See the preceding table for descriptions of these record types.

Name

Value

EMR_GLSRECORD

0x00000066

EMR_GLSBOUNDEDRECORD

0x00000067

Size (4 bytes): An unsigned integer that specifies the size in bytes of this record in the metafile. This value MUST be a multiple of 4 bytes.

OpenGLRecordBuffer (variable): An array of bytes that contains the remainder of the OpenGL record.


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

OpenGLRecordParm (variable)

...

AlignmentPadding (variable, optional)

...

OpenGLRecordParm (variable): An array of bytes that contains the parameters for the OpenGL record.

AlignmentPadding (variable, optional): An array of up to 3 bytes that pads the record so that its total size is a multiple of 4 bytes. This field MUST be ignored.

See section 2.3 for more EMF record types.