.\" $Xorg: encoding_doc.ms,v 1.3 2000/08/17 19:42:11 cpqbld Exp $ .\" .\" .\" This macro puts the section numbers, labels, and page numbers out .\" to the standard output. aps, crw, rjr. .\" WARNING: This macro assumes certain knowledge about the the ms/mu .\" packages work (what number and string registers are used, to be exact). .\" .de AC .NH \\$2 \\$1 .\" .\" This indents section heading of level two or greater. .\" .tm .Bg \\n(NS .tm \\*(SN \\$1 .tm .Ed \\n% .. .de AP .\" .\" This indents section heading of level two or greater. .\" .tm .Bg 1 .tm \\$1 .tm .Ed \\n% .. .de Ao .PN \\$1 .\" .\" This indents section heading of level two or greater. .\" .tm .Bg 3 .tm \\$1 .tm .Ed \\n% .. .de RU .br \l'6.5i' .sp .. .de AR .IP \\$1 1.0i .. .de Sh \" start a section (chapter type) .bp .NH 1 \fB\\$1\fP .tm .Nh "\\$1" "\\n%" "0" "\\n(H1" "\\n(H2" "\\n(H3" \" zero is for chapter,group .. .de Nh \" Start a new section .ds RH \\$1 .nr In 0 1 .ds Ic \\$1 .nr Ac 0 1 .LP .NH 2 \\$1 .tm .Nh "\\$1" "\\n%" "1" "\\n(H1" "\\n(H2" "\\n(H3" \" one is for sub-chapter .. .de Fs \" Function Start .. .de Nn \" Start name of function .NH 3 \\$1 .. .de Na \" Start name of function .sp .LP .in 0.5i .ti -0.5i \fBName:\fP .ti 0.5i \fB\\$1\fP .. .de Or \" name of output request .sp -1 .LP \fB\\$1\fP .tm .Bg 3 .tm \\$1 .tm .Ed \\n% .. .de Op \" add an output request parameter .br .RS \fI\\$1 : \fP \\$2 .RE .. .de Pa \" add a parameter .ti 0.5i \fI\\$1 : \fP \\$2 .. .de Rq \" Start Request list .LP .ti -0.5i \fBRequest:\fP .. .de Re \" Start Reply list .LP .ti -0.5i \fBReply:\fP .. .de Se \" Start ERRORS list .LP .ti -0.5i \fBErrors:\fP .ti 0.5i .. .de Fe \" End of Function .in 0i .. .de Bl \" Start of bullet item .sp -1 .IP "\fI\\$1\fP" .. .de 2d \" Description of 2d primtives When processed, this command will cause \\$1 primitives to be drawn. This primitive functions exactly as the 3D \\$1 primitive except that modeling coordinate positions are specified using only \fIx-\fP and \fIy-\fP coordinates, and the \fIz\fP-coordinate is always assumed to be zero. .. .de Es \" Start of enumerated type description table .LD .ta 0.2i 1.7i .. .de Ee \" End of enumerated type description table .ta .DE .. .de Ds .nf .\\$1D \\$2 \\$1 .ft 1 .ps \\n(PS .if \\n(VS>=40 .vs \\n(VSu .if \\n(VS<=39 .vs \\n(VSp .. .de De .ce 0 .if \\n(BD .DF .nr BD 0 .in \\n(OIu .if \\n(TM .ls 2 .sp \\n(DDu .fi .. .de Pn .ie t \\$1\fB\^\\$2\^\fR\\$3 .el \\$1\fI\^\\$2\^\fP\\$3 .. .de PN .ie t \fB\^\\$1\^\fR\\$2 .el \fI\^\\$1\^\fP\\$2 .. .nr LL 6.5i .nr PD 0.1i .nr HM 1.2i .nr FM 1.0i .nr PO 1.0i .nh .ps 10 .nr PS 10 .vs 12 .nr VS 12 .ad l .EH '\s+2\fBPEX\ Protocol\ Encoding\fP''\fBPEX\ V5.1\ 31-August-1992\fP\s-2' .OH '\s+2\fBPEX\ V5.1\ 31-August-1992\fP''\fBPEX\ Protocol\ Encoding\fP\s-2' .EF ''\s+2\fB % \fP\s-2'' .OF ''\s+2\fB % \fP\s-2'' .nr % 1 .AC Acknowledgements 1 .nh .LP To the author and first editor of this document, Todd Newman of Digital Equipment Corp., go our sincere thanks. Countless iterations of protocol changes and nit-fixing went into early versions of it and we gratefully acknowledge his care and dedication to this thankless task. Randi Rost and Jeff Friedberg of Digital Equipment Corp. helped in the production of the first draft of this document by explaining the original intent of the architecture team. Sally C. Barry of Digital Equipment Corp., was a patient and thorough reviewer of early versions of this document throughout its many revisions. .LP Randi Rost of Digital Equipment Corp. took over the job of editing this document in January of 1989, and performed this task until April of 1990. During this time, Randi was responsible for five separate revisions of the document. .LP We owe a major debt to the PEX architecture team which met frequently between June, 1987 and August, 1991: Jeffrey Friedberg, John McConnell, Pete Nishimoto, Randi J. Rost, and Jeffrey S. Saltz of Digital Equipment Corporation; Dave Gorgen, Tom Gross, and Jeff Stevenson of Hewlett-Packard Company; David Plunkett of Solbourne Computer; Jan Hardenbergh of Stardent Computer, Inc.; and Marty Hess, and Jim Van Loo of Sun Microsystems. .bp .AC "PEX Protocol Specification" 1 .LP .FS .br .sp X Window System is a trademark of the Massachusetts Institute of Technology X3D-PEX and PEX are trademarks of the Massachusetts Institute of Technology .FE .AC "Request Processing" 2 .LP Workstation regeneration and requests which process output commands are not guaranteed to be atomic with respect to concurrent rendering to the same destination drawable. However atomicity of execution is guaranteed for each individual output command primitive, excluding Execute Structure, GSE, GDP 3D, and GDP 2D. Also, requests and output commands will be executed in sequential order for a given connection. .AC "Protocol Format" 2 .LP .AC "Request Format" 3 .LP Requests are listed in section 2.8 and in section 4 through the end of the document. Output Commands are described in section 3. .AC "Reply Format" 3 .LP Replies are listed after the request. .AC "Error Format" 3 .LP See section 2.5.7 for the encoding of particular errors. .AC "Event Format" 3 .LP See section 2.6 for the encoding of events. .AC "Syntax" 2 .LP As far as possible, this document uses the layout and syntactic conventions used in the X encoding document. In particular, note that all numbers are decimal, unless prefixed by #x, in which case they are hexadecimal. Also note that, for entities of a variable size, E, the notation pad(E) indicates the number of bytes required to pad the entity to a multiple of 4 bytes. .LP There are some unavoidable differences from the X encoding document conventions, however, because of the many variable sized entities and entities with optional data in PEX. .AC "Naming Conventions" 2 .LP The names of the fields in requests, replies and lists of values match the names used in the \fIPEX Protocol Specification\fP. .AC "Common Types" 2 .LP The types listed in this section are some of the types mentioned in the PEX protocol. Generally, derivative types (e.g. ENUM_TYPE_INDEX) are replaced by the primitive or primitives of which they are composed (e.g. INT16). Only when this is impractical is the derivative type used; generally this is when the type is of variable length or a list of compound types is used. .AC "LISTofFOO" 3 .LP In this document, a LISTofFOO is a counted list of elements of type FOO, the count field preceding it in the request or reply. .LP In cases where the number of items in the list is easily computed from the length of the list, the number of items may not be supplied. (See, for example, the \fBPolyline3D\fP output command.) The goal is to reduce the burden on the client. Such cases are indicated in the encoding document. .LP There is also no count provided for a list that has an associated item_mask. .LP Unless otherwise marked, a LISTofLISTofFOO is implemented as follows: somewhere in the request or reply there is a number of lists field (perhaps several if there are multiple lists of lists). Each LIST is preceded by a CARD32 count field. .LP So the overall format is: .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R 4 CARD32 number of lists . . . (potentially other things here) 4 CARD32 number of items in first list n FOO first item of first list n FOO second item of first list . . . n FOO last item of first list 4 CARD32 number of items in second list n FOO first item of second list . . . .De .LP In only one place in the PEX protocol is a LISTofLISTofLISTofFOO required, in the \fBSetOfFillAreaSets\fP output command. In this case, the number of lists is a CARD16. Other counts within the list are CARD16. .LP The format of this is: .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R 2 CARD16 number of lists of lists . . . (potentially other things here) 2 CARD16 number of lists in first list of list 2 CARD16 number of items in first list n FOO first item of first list n FOO second item of first list . . . n FOO last item of first list 2 CARD16 number of items in second list n FOO first item of second list . . . 2 CARD16 number of lists in second list of list 2 CARD16 number of items in first list n FOO first item of first list n FOO second item of first list . . . n FOO last item of first list 2 CARD16 number of items in second list n FOO first item of second list . . . 2 CARD16 number of lists in last list of list 2 CARD16 number of items in first list n FOO first item of first list n FOO second item of first list . . . n FOO last item of first list 2 CARD16 number of items in second list n FOO first item of second list . . . .De .AC "BITMASK and LISTofVALUE" 3 .LP Because the values in a value list are of variable size, a list of values can only be interpreted serially; there is no way to find the Nth element without examining the N-1 previous elements. .LP Elements have all been padded to a multiple of 4 bytes. If values appear which could be encoded in less space, it is assumed that they will be placed in the least significant bits of the word. (Byte-swapping may occur between the client and the server.) .AC "Floating Point Format - FLOAT" 3 .LP A FLOAT is a floating point quantity in one of the server supported formats. If the client wishes to communicate with the server in other than the server's native floating point format, the server must perform the necessary conversions. The format word of a request tells the server what format the client wishes to use. .LP Depending on the floating point format, the size of a FLOAT may be 4 or 8 bytes. Floating point values passed to the server may be in any one of the registered floating point formats: .TA .2i .6i 1.6i 3.1i .ta .2i .6i 1.6i 3.1i .nf 1 IEEE_754_32 4 bytes 2 DEC_F_Floating 4 bytes 3 IEEE_754_64 8 bytes 4 DEC_D_Floating 8 bytes .fi Equations are provided for computing the length of the requests that contain floating point values, however these equations assume that one of the four registered floating point formats is being used. In all of these equations, the name \fIfp\fP refers to the size in bytes of a FLOAT in the floating point format indicated in the format word of the request. .AC "Colors" 3 .LP Colors passed to the server may be of any one of the registered color types: .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .nf 0 Indexed 1 RGBFloat 2 CIEFloat 3 HSVFloat 4 HLSFloat 5 RGBInt8 6 RGBInt16 .fi Equations are provided for computing the length of the requests that contain colors, however these equations assume that one of the seven registered color types and one of the four registered floating point formats is being used. .AC "Element Types" 3 .LP .AC "Types" 3 .LP Some PEX requests and replies contain matrices. These are denoted in this document as FLOAT[4][4] or FLOAT[3][3]. The elements of the matrices are sent over the wire in a row-wise manner. That is, the element of a 4\(mu4 transformation matrix that indicates the translation in the X direction is the fourth element sent. .LP The following compound types appear in the rest of the encoding document. For a complete list of types refer to the protocol document. If a variable is given which computes the length of a compound type (e.g., the equation for d in OPT_DATA), that variable may be used later to express the length of a request or reply (e.g. the \fBTriangleStrip\fP output command). .sp 1 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R CHARACTER 1 CARD8 byte character or 2 CARD16 short character or 4 CARD32 long character .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R COLOR n = ((color type == Indexed)||(color type == RGBInt8) ? 1 : ((color type == RGBInt16) ? 2 : 3*\fIfp\fP/4) (color type is obtained from elsewhere in the request or output command) 4n color value .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R COLOR_SPECIFIER n = ((color type == Indexed)||(color type == RGBInt8) ? 1 : ((color type == RGBInt16) ? 2 : 3*\fIfp\fP/4) 2 color type 2 unused 4n color value .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R COORD_2D \fIfp\fP FLOAT x \fIfp\fP FLOAT y .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R COORD_3D \fIfp\fP FLOAT x \fIfp\fP FLOAT y \fIfp\fP FLOAT z .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R COORD_4D \fIfp\fP FLOAT x \fIfp\fP FLOAT y \fIfp\fP FLOAT z \fIfp\fP FLOAT w .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R DC_HIT_BOX_DATA 2 INT16 x 2 INT16 y \fIfp\fP FLOAT pick distance .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R DEVICE_COORD 2 INT16 x 2 INT16 y \fIfp\fP FLOAT z .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R DEVICE_RECT 2 INT16 xmin 2 INT16 ymin 2 INT16 xmax 2 INT16 ymax .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R DIRECT_COLOR n = ((color_type == RGBInt8) ? 1 : ((color_type == RGBInt16) ? 2 : 3*\fIfp\fP/4) 4n direct color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R ELEMENT_REF 4 CARD32 structure ID 4 CARD32 offset .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R ENUM_DESC 2 INT16 index 2 n string length n LISTofCARD8 string p unused, p=pad(n) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R EXTENT_INFO \fIfp\fP FLOAT lower left x \fIfp\fP FLOAT lower left y \fIfp\fP FLOAT upper right x \fIfp\fP FLOAT upper right y \fIfp\fP FLOAT concatpoint x \fIfp\fP FLOAT concatpoint y .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R FACET (maximum size, some fields may be missing, see below) df OPT_DATA facet data (c and n may be set, but s is never set) 4 nv number of vertices in list nv(3*\fIfp\fP+dv) LISTofVERTEX vertices .sp 1 (let f be the size of a FACET in bytes. let df be the size of the per facet OPT_DATA. let dv be the size of the per vertex OPT_DATA. fc is true if facet attributes specifies a color is present. fn is true if facet attributes specifies a normal is present. let sc be the size of a direct color in bytes. sc = (color type == RGBInt8) ? 4 : ((color type == (RGBInt16) ? 8 : 3*\fIfp\fP) fi is true if facet color is indexed, false if color is direct. Then df = (fc ? (fi ? 4 : sc) : 0 ) + (fn ? 3*\fIfp\fP : 0) vc is true if vertex attributes specifies a color is present. vn is true if vertex attributes specifies a normal is present. ve is true if vertex attributes specifies an edge flag is present. vi is true if vertex color is indexed, false if color is direct. Then dv = (vc ? (vi ? 4 : sc) : 0 ) + (vn ? 3*\fIfp\fP : 0) + (ve ? 4 : 0) so f = 4 + df + nv * (3*\fIfp\fP + dv) ) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R FONTINFO 4 CARD32 first glyph 4 CARD32 last glyph 4 CARD32 default glyph 1 all glyphs exist 0 False 1 True 1 stroke font 0 False 1 True 2 unused 4 n number of properties 8n LISTofFONTPROP properties .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R FONTPROP 4 CARD32 name 4 CARD32 value .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R HALF_SPACE \fIfp\fP FLOAT point x \fIfp\fP FLOAT point y \fIfp\fP FLOAT point z \fIfp\fP FLOAT vector x \fIfp\fP FLOAT vector y \fIfp\fP FLOAT vector z .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R HALF_SPACE_2D \fIfp\fP FLOAT point x \fIfp\fP FLOAT point y \fIfp\fP FLOAT vector x \fIfp\fP FLOAT vector y .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R MONO_ENCODING 2 CARD16 character set 1 character set width (call this value w) 0 csByte 1 csShort 2 csLong 1 CARD8 encoding state 2 unused 2 c number of characters s LISTofCHARACTER string p unused, p=pad(s) .sp 1 (let m be the size of the mono encoding. let s be the size of the string in bytes. s = (w == 0) ? c : ((w == 1) ? 2c : 4c) m = 8 + s + p ) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R NAME_SET_PAIR 4 CARD32 inclusion nameset ID 4 CARD32 exclusion nameset ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R NPC_SUBVOLUME \fIfp\fP FLOAT min x \fIfp\fP FLOAT min y \fIfp\fP FLOAT min z \fIfp\fP FLOAT max x \fIfp\fP FLOAT max y \fIfp\fP FLOAT max z .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R OPT_DATA (maximum size, some fields may be missing, see below) sc = ((color type == Indexed)||(color type == RGBInt8)) ? 1 : ((color type == RGBInt16) ? 2 : 3*\fIfp\fP/4) 4sc color \fIfp\fP FLOAT normal x \fIfp\fP FLOAT normal y \fIfp\fP FLOAT normal z 4 CARD32 edges .sp 1 (let d be the size of an OPT_DATA in bytes. c is true if control word specifies a color is present. n is true if control word specifies a normal is present. s is true if control word specifies an edge switch is present. i is true if color is indexed, false if color is direct. f is 1 if color type is RGBInt8 2 if color type is RGBInt16 3 otherwise. Then d = (c ? ((i || (f == 1)) ? 4 : ((f == 2) ? 8 : 3*\fIfp\fP)) : 0) + (n ? 3*\fIfp\fP : 0) + (s ? 4 : 0) ) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R PICK_ELEMENT_REF 4 CARD32 structure ID 4 CARD32 offset 4 CARD32 pick identifier .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R PICK_RECORD n = ((pick type == NPC_HitVolume) ? (6*\fIfp\fP/4) : (1+\fIfp\fP/4) ) 2 INT16 pick type 2 unused 4n hit box .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R RENDERER_TARGET 1 CARD8 depth 1 unused 2 type 0 don't care 1 window 2 pixmap 3 buffer 4 CARD32 visual ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R STRING 2 n length n LISTofCARD8 string p unused, p=pad(n+2) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R STRUCTURE_INFO 4 CARD32 structure ID \fIfp\fP FLOAT priority .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R TRIM_CURVE 1 visibility 0 Off 1 On 1 unused 2 CARD16 order 2 type 0 Rational 1 NonRational (t = (type == Rational) ? 3 : 2) 2 INT16 approximation method \fIfp\fP FLOAT approximation tolerance \fIfp\fP FLOAT tmin \fIfp\fP FLOAT tmax 4 k number of knots 4 p number of points \fIfp\fP*k LISTofFLOAT knots \fIfp\fP*p*t LISTofCOORD points (COORD_3D or COORD_2D depending on t) (let c be the size of a TRIM_CURVE in bytes.) (c = 16 + \fIfp\fP * (3 + k + p*t)) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R VERTEX \fIfp\fP FLOAT point x \fIfp\fP FLOAT point y \fIfp\fP FLOAT point z d OPT_DATA data (see OPT_DATA for d) (let v be the size of a VERTEX in bytes.) (v = 3*\fIfp\fP + d) .De .AC "Errors" 3 .LP \fIBEC\fR is the base error code for the extension, as returned by \fBQueryExtension\fP. .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN ColorType 1 0 Error 1 \fIBEC\fR+0 code 2 CARD16 sequence number 4 CARD32 bad color type 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN RendererState 1 0 Error 1 \fIBEC\fR+1 code 2 CARD16 sequence number 4 CARD32 renderer ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN FloatingPointFormat 1 0 Error 1 \fIBEC\fR+2 code 2 CARD16 sequence number 4 CARD32 bad format 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN Label 1 0 Error 1 \fIBEC\fR+3 code 2 CARD16 sequence number 4 CARD32 bad label 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN LookupTable 1 0 Error 1 \fIBEC\fR+4 code 2 CARD16 sequence number 4 CARD32 bad table ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN Nameset 1 0 Error 1 \fIBEC\fR+5 code 2 CARD16 sequence number 4 CARD32 bad nameset ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN Path 1 0 Error 1 \fIBEC\fR+6 code 2 CARD16 sequence number 4 CARD32 index of bad path element 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN PEXFont 1 0 Error 1 \fIBEC\fR+7 code 2 CARD16 sequence number 4 CARD32 bad font ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN PhigsWKS 1 0 Error 1 \fIBEC\fR+8 code 2 CARD16 sequence number 4 CARD32 bad PHIGS workstation ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN PickMeasure 1 0 Error 1 \fIBEC\fR+9 code 2 CARD16 sequence number 4 CARD32 bad device ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN PipelineContext 1 0 Error 1 \fIBEC\fR+10 code 2 CARD16 sequence number 4 CARD32 bad pipeline context ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN Renderer 1 0 Error 1 \fIBEC\fR+11 code 2 CARD16 sequence number 4 CARD32 bad renderer ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN SearchContext 1 0 Error 1 \fIBEC\fR+12 code 2 CARD16 sequence number 4 CARD32 bad search context ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN Structure 1 0 Error 1 \fIBEC\fR+13 code 2 CARD16 sequence number 4 CARD32 bad structure ID 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN OutputCommand 1 0 Error 1 \fIBEC\fR+14 code 2 CARD16 sequence number 4 CARD32 renderer ID or structure ID 2 CARD16 minor opcode 1 CARD8 major opcode 1 CARD8 unused 2 CARD16 opcode of output command 2 CARD16 number of output commands in the request that were processed successfully 16 unused .De .AC "Resource IDs" 3 .LP Some resources have attributes that contain IDs of other resources. It is possible for the referenced resource to be freed while the referencing resource remains in use. Attempts to query attributes containing the resource ID of a resource that has already been freed will return the value \fIAlreadyFreed\fP (whose value equals one). .AC "Events" 2 .LP \fIBEC\fR is the base event code for the extension, as returned by \fBQueryExtension\fP. .LP .Ds 0 .TA .2i .5i 1.6i .ta .2i .5i 1.6i .R .PN MaxHitsReached 1 \fIBEC\fR+0 code 1 unused 2 CARD16 sequence number 4 CARD32 renderer id 24 unused .De .LP .AC "Padding" 2 .LP The contents of pad bytes is explicitly left undefined. In some cases, the length of a field is followed by its type which is shorter than the stated length of the field (e.g., "distinguish 4 CARD8"). In these cases, the value is placed in the least significant bits of the word and the entire word is byte swapped. .AC "Extension Information" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetExtensionInfo 1 CARD8 opcode (X11 assigned) 1 1 PEX opcode 2 2 request length 2 CARD16 client protocol major version 2 CARD16 client protocol minor version .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 (n+p)/4 reply length 2 CARD16 protocol major version 2 CARD16 protocol minor version 4 CARD32 release number 4 n length of vendor name 4 CARD32 subset info 8 unused n LISTofCARD8 vendor p unused, p=pad(n) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetEnumeratedTypeInfo 1 CARD8 opcode (X11 assigned) 1 2 PEX opcode 2 4+(2n+p)/4 request length 4 CARD32 drawable ID 4 item mask #x00000001 index #x00000002 mnemonic 4 n number of enumerated types 2n LISTofCARD16 enum types 1 MarkerType 2 ATextStyle 3 InteriorStyle 4 HatchStyle 5 LineType 6 SurfaceEdgeType 7 PickDeviceType 8 PolylineInterpMethod 9 CurveApproxMethod 10 ReflectionModel 11 SurfaceInterpMethod 12 SurfaceApproxMethod 13 ModelClipOperator 14 LightType 15 ColorType 16 FloatFormat 17 HLHSRMode 18 PromptEchoType 19 DisplayUpdateMode 20 ColorApproxType 21 ColorApproxModel 22 GDP 23 GDP3 24 GSE 25 TrimCurveApproxMethod 26 RenderingColorModel 27 ParametricSurfaceCharacteristics 28 Escape 29 PickOneMethod 30 PickAllMethod p unused, p=pad(2n) .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 m/4 reply length 4 n number of lists 20 unused m LISTofENUM_DATA types .De .LP The contents of ENUM_DATA depends on \fIitem_mask\fP. If \fIitem_mask\fP = 0 then only the counts are returned and ENUM_DATA is a CARD32. If \fIitem_mask\fP = 1 then only the indices are returned and ENUM_DATA is a LISTofINT16. If \fIitem_mask\fP = 2 then only the mnemonics are returned and ENUM_DATA is a LISTofSTRING. If \fIitem_mask\fP = 3 then the indices and mnemonics are returned and ENUM_DATA is a LISTofENUM_DESC. .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetImpDepConstants 1 CARD8 opcode (X11 assigned) 1 3 PEX opcode 2 4+(2n+p)/4 request length 2 INT16 floating point format 2 unused 4 CARD32 example drawable ID 4 n number of names 2n LISTofCONSTANT_NAME names p unused, p=pad(2n) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 24 unused 4n LISTofVALUE constants (length implicit) .De Names for \fBPEXGetImpDepConstants\fP: All names are 16 bit constants, returns CARD32, except for the names \fIChromaticityRedU, ChromaticityRedV, LuminanceRed, ChromaticityGreenU, ChromaticityGreenV, Luminance-Green, ChromaticityBlueU, ChromaticityBlueV, LuminanceBlue, ChromaticityWhiteU, ChromaticityWhiteV,\fP and \fILuminanceWhite\fP, each of which returns a FLOAT. .sp 1 .Ds 0 .TA .2i .6i 1.6i 2.1i .ta .2i .6i 1.6i 2.1i .R Name Value .sp 1 DitheringSupported 1 0 False 1 True MaxEdgeWidth 2 MaxLineWidth 3 MaxMarkerSize 4 MaxModelClipPlanes 5 MaxNameSetNames 6 MaxNonAmbientLights 7 MaxNURBOrder 8 MaxTrimCurveOrder 9 MinEdgeWidth 10 MinLineWidth 11 MinMarkerSize 12 NominalEdgeWidth 13 NominalLineWidth 14 NominalMarkerSize 15 NumSupportedEdgeWidths 16 NumSupportedLineWidths 17 NumSupportedMarkerSizes 18 BestColorApproxValues 19 0 ColorApproxAnyValues 1 ColorApproxPowersOf2 TransparencySupported 20 0 False 1 True DoubleBufferingSupported 21 0 False 1 True ChromaticityRedU 22 ChromaticityRedV 23 LuminanceRed 24 ChromaticityGreenU 25 ChromaticityGreenV 26 LuminanceGreen 27 ChromaticityBlueU 28 ChromaticityBlueV 29 LuminanceBlue 30 ChromaticityWhiteU 31 ChromaticityWhiteV 32 LuminanceWhite 33 MaxHitsEventSupported 34 0 False 1 True .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXMatchRendererTargets 1 CARD8 opcode (X11 assigned) 1 94 PEX opcode 2 5 request length 4 CARD32 drawable ID 1 CARD8 depth 1 unused 2 type 0 don't care 1 window 2 pixmap 3 buffer 4 CARD32 visual ID 4 CARD32 max targets .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 2n reply length 24 unused 8n LISTofRENDERER_TARGET targets (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXEscape 1 CARD8 opcode (X11 assigned) 1 95 PEX opcode 2 2+n request length 4 CARD32 escape ID 4n escape data .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXEscapeWithReply 1 CARD8 opcode (X11 assigned) 1 96 PEX opcode 2 2+n request length 4 CARD32 escape ID 4n escape data .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length (n can be zero) 4 CARD32 escape ID 20 escape reply data n escape reply data .De .LP See the appendix for the encoding of registered escapes. .LP .bp .AC "Output Commands" 1 .LP Output command numbers start at 1. Output command number 0 is reserved to mean \fIAll\fP for element searching. Negative output command numbers are implemenation dependent. .AC "Data Formats" 2 .LP .AC "Output Command Descriptions" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao MarkerType 3 2 1 output command number 2 2 output command length 2 INT16 marker type 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao MarkerScale 3 2 2 output command number 2 1+\fIfp\fP/4 output command length \fIfp\fP FLOAT scale .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao MarkerColorIndex 3 2 3 output command number 2 2 output command length 2 CARD16 indexed color 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao MarkerColor 3 2 4 output command number 2 2+n output command length 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao MarkerBundleIndex 3 2 5 output command number 2 2 output command length 2 CARD16 marker bundle index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TextFontIndex 3 2 6 output command number 2 2 output command length 2 CARD16 font index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TextPrecision 3 2 7 output command number 2 2 output command length 2 precision 0 StringPrecision 1 CharPrecision 2 StrokePrecision 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao CharacterExpansion 3 2 8 output command number 2 1+\fIfp\fP/4 output command length \fIfp\fP FLOAT expansion .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao CharacterSpacing 3 2 9 output command number 2 1+\fIfp\fP/4 output command length \fIfp\fP FLOAT spacing .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TextColorIndex 3 2 10 output command number 2 2 output command length 2 CARD16 color index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TextColor 3 2 11 output command number 2 2+n output command length 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao CharacterHeight 3 2 12 output command number 2 1+\fIfp\fP/4 output command length \fIfp\fP FLOAT height .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao CharacterUpVector 3 2 13 output command number 2 1+\fIfp\fP/2 output command length \fIfp\fP FLOAT up x \fIfp\fP FLOAT up y .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TextPath 3 2 14 output command number 2 2 output command length 2 path 0 PathRight 1 PathLeft 2 PathUp 3 PathDown 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TextAlignment 3 2 15 output command number 2 2 output command length 2 alignment vertical 0 ValignNormal 1 ValignTop 2 ValignCap 3 ValignHalf 4 ValignBase 5 ValignBottom 2 alignment horizontal 0 HalignNormal 1 HalignLeft 2 HalignCenter 3 HalignRight .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AnnotationTextHeight 3 2 16 output command number 2 1+\fIfp\fP/4 output command length \fIfp\fP FLOAT height .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AnnotationTextUpVector 3 2 17 output command number 2 1+\fIfp\fP/2 output command length \fIfp\fP FLOAT up x \fIfp\fP FLOAT up y .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AnnotationTextPath 3 2 18 output command number 2 2 output command length 2 path 0 PathRight 1 PathLeft 2 PathUp 3 PathDown 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AnnotationTextAlignment 3 2 19 output command number 2 2 output command length 2 alignment vertical 0 ValignNormal 1 ValignTop 2 ValignCap 3 ValignHalf 4 ValignBase 5 ValignBottom 2 alignment horizontal 0 HalignNormal 1 HalignLeft 2 HalignCenter 3 HalignRight .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AnnotationTextStyle 3 2 20 output command number 2 2 output command length 2 INT16 annotation text style 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TextBundleIndex 3 2 21 output command number 2 2 output command length 2 CARD16 text bundle index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LineType 3 2 22 output command number 2 2 output command length 2 INT16 line type 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LineWidth 3 2 23 output command number 2 1+\fIfp\fP/4 output command length \fIfp\fP FLOAT width .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LineColorIndex 3 2 24 output command number 2 2 output command length 2 CARD16 color index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LineColor 3 2 25 output command number 2 2+n output command length 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao CurveApproximation 3 2 26 output command number 2 2+\fIfp\fP/4 output command length 2 INT16 approximation method 2 unused \fIfp\fP FLOAT approximation tolerance .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao PolylineInterpolationMethod 3 2 27 output command number 2 2 output command length 2 INT16 polyline interpolation method 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LineBundleIndex 3 2 28 output command number 2 2 output command length 2 CARD16 line bundle index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceInteriorStyle 3 2 29 output command number 2 2 output command length 2 INT16 interior style 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceInteriorStyleIndex 3 2 30 output command number 2 2 output command length 2 CARD16 | INT16 table index or interior style 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceColorIndex 3 2 31 output command number 2 2 output command length 2 CARD16 color index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceColor 3 2 32 output command number 2 2+n output command length 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceReflectionAttributes 3 2 33 output command number 2 2+5*\fIfp\fP/4+n output command length \fIfp\fP FLOAT ambient coefficient \fIfp\fP FLOAT diffuse coefficient \fIfp\fP FLOAT specular coefficient \fIfp\fP FLOAT specular concentration \fIfp\fP FLOAT transmission coefficient 4+4*n COLOR_SPECIFIER specular color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceReflectionModel 3 2 34 output command number 2 2 output command length 2 INT16 reflection model 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceInterpolationMethod 3 2 35 output command number 2 2 output command length 2 INT16 surface interpolation method 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao BackfaceSurfaceInteriorStyle 3 2 36 output command number 2 2 output command length 2 INT16 interior style 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao BackfaceSurfaceInteriorStyleIndex 3 2 37 output command number 2 2 output command length 2 CARD16 | INT16 table index or interior style 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao BackfaceSurfaceColorIndex 3 2 38 output command number 2 2 output command length 2 CARD16 color index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao BackfaceSurfaceColor 3 2 39 output command number 2 2+n output command length 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao BackfaceSurfaceReflectionAttributes 3 2 40 output command number 2 2+5*\fIfp\fP/4+n output command length \fIfp\fP FLOAT ambient coefficient \fIfp\fP FLOAT diffuse coefficient \fIfp\fP FLOAT specular coefficient \fIfp\fP FLOAT specular concentration \fIfp\fP FLOAT transmission coefficient 4+4*n COLOR_SPECIFIER specular color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao BackfaceSurfaceReflectionModel 3 2 41 output command number 2 2 output command length 2 INT16 reflection model 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao BackfaceSurfaceInterpolationMethod 3 2 42 output command number 2 2 output command length 2 INT16 surface interpolation method 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceApproximation 3 2 43 output command number 2 2+\fIfp\fP/2 output command length 2 INT16 surface approximation method 2 unused \fIfp\fP FLOAT approximation u tolerance \fIfp\fP FLOAT approximation v tolerance .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FacetCullingMode 3 2 44 output command number 2 2 output command length 2 culling mode 0 None 1 BackFaces 2 FrontFaces 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FacetDistinguishFlag 3 2 45 output command number 2 2 output command length 1 distinguish 0 False 1 True 3 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao PatternSize 3 2 46 output command number 2 1+\fIfp\fP/2 output command length \fIfp\fP FLOAT size x \fIfp\fP FLOAT size y .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao PatternReferencePoint 3 2 47 output command number 2 1+\fIfp\fP/2 output command length \fIfp\fP FLOAT point x \fIfp\fP FLOAT point y .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao PatternReferencePointAndVectors 3 2 48 output command number 2 1+9*\fIfp\fP/4 output command length \fIfp\fP FLOAT reference point x \fIfp\fP FLOAT reference point y \fIfp\fP FLOAT reference point z \fIfp\fP FLOAT vector1 x \fIfp\fP FLOAT vector1 y \fIfp\fP FLOAT vector1 z \fIfp\fP FLOAT vector2 x \fIfp\fP FLOAT vector2 y \fIfp\fP FLOAT vector2 z .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao InteriorBundleIndex 3 2 49 output command number 2 2 output command length 2 CARD16 interior bundle index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceEdgeFlag 3 2 50 output command number 2 2 output command length 1 onoff 0 Off 1 On 3 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceEdgeType 3 2 51 output command number 2 2 output command length 2 INT16 edge type 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceEdgeWidth 3 2 52 output command number 2 1+\fIfp\fP/4 output command length \fIfp\fP FLOAT width .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceEdgeColorIndex 3 2 53 output command number 2 2 output command length 2 CARD16 color index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SurfaceEdgeColor 3 2 54 output command number 2 2+n output command length 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao EdgeBundleIndex 3 2 55 output command number 2 2 output command length 2 CARD16 edge bundle index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SetIndividualASF 3 2 56 output command number 2 3 output command length 4 ASF attribute to be modified #x00000001 MarkerTypeASF #x00000002 MarkerScaleASF #x00000004 MarkerColorASF #x00000008 TextFontIndexASF #x00000010 TextPrecASF #x00000020 CharExpansionASF #x00000040 CharSpacingASF #x00000080 TextColorASF #x00000100 LineTypeASF #x00000200 LineWidthASF #x00000400 LineColorASF #x00000800 CurveApproxASF #x00001000 PolylineInterpASF #x00002000 InteriorStyleASF #x00004000 InteriorStyleIndexASF #x00008000 SurfaceColorASF #x00010000 SurfaceInterpASF #x00020000 ReflectionModelASF #x00040000 ReflectionAttrASF #x00080000 BfInteriorStyleASF #x00100000 BfInteriorStyleIndexASF #x00200000 BfSurfaceColorASF #x00400000 BfSurfaceInterpASF #x00800000 BfReflectionModelASF #x01000000 BfReflectionAttrASF #x02000000 SurfaceApproxASF #x04000000 SurfaceEdgesASF #x08000000 SurfaceEdgeTypeASF #x10000000 SurfaceEdgeWidthASF #x20000000 SurfaceEdgeColorASF 1 new ASF value 0 Bundled 1 Individual 3 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LocalTransform3D 3 2 57 output command number 2 2+4*\fIfp\fP output command length 2 composition type 0 PreConcatenate 1 PostConcatenate 2 Replace 2 unused 16*\fIfp\fP FLOAT[4][4] matrix .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LocalTransform2D 3 2 58 output command number 2 2+9*\fIfp\fP/4 output command length 2 composition type 0 PreConcatenate 1 PostConcatenate 2 Replace 2 unused 9*\fIfp\fP FLOAT[3][3] matrix .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao GlobalTransform3D 3 2 59 output command number 2 1+4*\fIfp\fP output command length 16*\fIfp\fP FLOAT[4][4] matrix .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao GlobalTransform2D 3 2 60 output command number 2 1+9*\fIfp\fP/4 output command length 9*\fIfp\fP FLOAT[3][3] matrix .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao ModelClip 3 2 61 output command number 2 2 output command length 1 clip switch 0 Clip 1 NoClip 3 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SetModelClipVolume3D 3 2 62 output command number 2 2+(3*\fIfp\fP*n)/2 output command length 2 INT16 operator 2 n number of halfspaces 6*\fIfp\fP*n LISTofHALF_SPACE halfspaces .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SetModelClipVolume2D 3 2 63 output command number 2 2+\fIfp\fP*n output command length 2 INT16 operator 2 n number of halfspaces 4*\fIfp\fP*n LISTofHALF_SPACE_2D halfspaces .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao RestoreModelClipVolume 3 2 64 output command number 2 1 output command length .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao ViewIndex 3 2 65 output command number 2 2 output command length 2 CARD16 view index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao LightSourceState 3 2 66 output command number 2 2+(2e+2d+p1+p2)/4 output command length 2 CARD16 number of lights to enable 2 CARD16 number of lights to disable 2e LISTofCARD16 lights to be enabled p1 unused, p1=pad(2e) 2d LISTofCARD16 lights to be disabled p2 unused, p2=pad(2d) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao DepthCueIndex 3 2 67 output command number 2 2 output command length 2 CARD16 depth cue index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao PickID 3 2 68 output command number 2 2 output command length 4 CARD32 pick identifier .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao HLHSRIdentifier 3 2 69 output command number 2 2 output command length 4 CARD32 HLHSR identifier .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao ColorApproximationIndex 3 2 70 output command number 2 2 output command length 2 CARD16 color approximation index 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao RenderingColorModel 3 2 71 output command number 2 2 output command length 2 INT16 rendering color model 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao ParametricSurfaceCharacteristics 3 2 72 output command number 2 2+(n+p)/4 output command length 2 INT16 characteristics 1 None 2 implementation dependent 3 IsoparametricCurves 4 MC_LevelCurves 5 WC_LevelCurves 2 n length of data, bytes n LISTofCARD8 data p unused, p=pad(n) .De .sp 1 The data records for the registered parametric surface characteristics are: .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Type 1, None: No data. .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Type 2, implementation dependent: No data. .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Type 3, IsoparametricCurves: 2 CARD16 placement type 0 Uniform 1 NonUniform 2 unused 2 CARD16 number of curves in u direction 2 CARD16 number of curves in v direction .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Type 4, MC_LevelCurves: \fIfp\fP FLOAT MC origin x \fIfp\fP FLOAT MC origin y \fIfp\fP FLOAT MC origin z \fIfp\fP FLOAT MC direction vector x \fIfp\fP FLOAT MC direction vector y \fIfp\fP FLOAT MC direction vector z 2 t number of intersections 2 unused t*\fIfp\fP FLOAT intersection parameters .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Type 5, WC_LevelCurves: \fIfp\fP FLOAT WC origin x \fIfp\fP FLOAT WC origin y \fIfp\fP FLOAT WC origin z \fIfp\fP FLOAT WC direction vector x \fIfp\fP FLOAT WC direction vector y \fIfp\fP FLOAT WC direction vector z 2 t number of intersections 2 unused t*\fIfp\fP FLOAT intersection parameters .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AddNamesToNameSet 3 2 73 output command number 2 1+n output command length 4n LISTofCARD32 list of names (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao RemoveNamesFromNameSet 3 2 74 output command number 2 1+n output command length 4n LISTofCARD32 list of names (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao ExecuteStructure 3 2 75 output command number 2 2 output command length 4 CARD32 structure ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Label 3 2 76 output command number 2 2 output command length 4 INT32 label .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao ApplicationData 3 2 77 output command number 2 2+(n+p)/4 output command length 2 n length of data 2 unused n LISTofCARD8 data p unused, p=pad(n) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao GSE 3 2 78 output command number 2 3+(n+p)/4 output command length 4 INT32 GSE identifier 2 n length of data 2 unused n LISTofCARD8 data p unused, p=pad(n) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Marker3D 3 2 79 output command number 2 1+3*\fIfp\fP*n/4 output command length 3*\fIfp\fP*n LISTofCOORD_3D points (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Marker2D 3 2 80 output command number 2 1+\fIfp\fP*n/2 output command length 2*\fIfp\fP*n LISTofCOORD_2D points (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Text3D 3 2 81 output command number 2 2+s+(9*\fIfp\fP+n)/4 output command length \fIfp\fP FLOAT origin x \fIfp\fP FLOAT origin y \fIfp\fP FLOAT origin z \fIfp\fP FLOAT vector1 x \fIfp\fP FLOAT vector1 y \fIfp\fP FLOAT vector1 z \fIfp\fP FLOAT vector2 x \fIfp\fP FLOAT vector2 y \fIfp\fP FLOAT vector2 z 2 s number of mono encodings 2 unused (let n be the sum of the sizes, m, of the MONO_ENCODINGs) 4s+n LISTofMONO_ENCODING string (see MONO_ENCODING for m) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Text2D 3 2 82 output command number 2 2+s+(2*\fIfp\fP+n)/4 output command length \fIfp\fP FLOAT origin x \fIfp\fP FLOAT origin y 2 s number of mono encodings 2 unused (let n be the sum of the sizes, m, of the MONO_ENCODINGs) 4s+n LISTofMONO_ENCODING string (see MONO_ENCODING for m) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AnnotationText3D 3 2 83 output command number 2 2+s+(6*\fIfp\fP+n)/4 output command length \fIfp\fP FLOAT origin x \fIfp\fP FLOAT origin y \fIfp\fP FLOAT origin z \fIfp\fP FLOAT offset x \fIfp\fP FLOAT offset y \fIfp\fP FLOAT offset z 2 s number of mono encodings 2 unused (let n be the sum of the sizes, m, of the MONO_ENCODINGs) 4s+n LISTofMONO_ENCODING string (see MONO_ENCODING for m) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao AnnotationText2D 3 2 84 output command number 2 2+s+(4*\fIfp\fP+n)/4 output command length \fIfp\fP FLOAT origin x \fIfp\fP FLOAT origin y \fIfp\fP FLOAT offset x \fIfp\fP FLOAT offset y 2 s number of mono encodings 2 unused (let n be the sum of the sizes, m, of the MONO_ENCODINGs) 4s+n LISTofMONO_ENCODING string (see MONO_ENCODING for m) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Polyline3D 3 2 85 output command number 2 1+3*\fIfp\fP*n/4 output command length 3*\fIfp\fP*n LISTofCOORD_3D vertices (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Polyline2D 3 2 86 output command number 2 1+\fIfp\fP*n/2 output command length 2*\fIfp\fP*n LISTofCOORD_2D vertices (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao PolylineSet3DWithData 3 2 87 output command number 2 3+n+m*v/4 output command length 2 INT16 color type 2 vertex attributes #x0001 color 4 n number of lists (let m be the number of vertices in the list of lists) 4n+m*v LISTofLISTofVERTEX vertices (see VERTEX for v) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao NonUniformBSplineCurve 3 2 88 output command number 2 4+\fIfp\fP*(2+k+t*p)/4 output command length 2 CARD16 order 2 type 0 Rational 1 NonRational (t = (type == Rational) ? 4 : 3) \fIfp\fP FLOAT tmin \fIfp\fP FLOAT tmax 4 k number of knots 4 p number of points \fIfp\fP*k LISTofFLOAT knots \fIfp\fP*t*p LISTofCOORD points (COORD_3D or COORD_4D depending on t) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FillArea3D 3 2 89 output command number 2 2+3*\fIfp\fP*p/4 output command length 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown 1 ignore edges 0 False 1 True 1 unused 3*\fIfp\fP*p LISTofCOORD_3D vertices (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FillArea2D 3 2 90 output command number 2 2+\fIfp\fP*p/2 output command length 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown 1 ignore edges 0 False 1 True 1 unused 2*\fIfp\fP*p LISTofCOORD_2D vertices (length implicit) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FillArea3DWithData 3 2 91 output command number 2 4+f/4 output command length 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown 1 ignore edges 0 False 1 True 1 unused 2 INT16 color type 2 facet attributes #x0001 color #x0002 normal 2 vertex attributes #x0001 color #x0002 normal 2 unused f FACET facet (see FACET for f) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FillAreaSet3D 3 (let m be the number of vertices in the list of lists) 2 92 output command number 2 3+n+3*\fIfp\fP*m/4 output command length 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown 1 ignore edges 0 False 1 True 1 contour hint 0 Disjoint 1 Nested 2 Intersecting 3 Unknown 4 n number of lists 4n+3*\fIfp\fP*m LISTofLISTofCOORD_3D vertices .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FillAreaSet2D 3 (let m be the number of vertices in the list of lists) 2 93 output command number 2 3+n+\fIfp\fP*m/2 output command length 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown 1 ignore edges 0 False 1 True 1 contour hint 0 Disjoint 1 Nested 2 Intersecting 3 Unknown 4 n number of lists 4n+2*\fIfp\fP*m LISTofLISTofCOORD_2D vertices .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao FillAreaSet3DWithData 3 (let m be the number of vertices in the list of lists) 2 94 output command number 2 5+n+(d+m*v)/4 output command length 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown 1 ignore edges 0 False 1 True 1 contour hint 0 Disjoint 1 Nested 2 Intersecting 3 Unknown 2 INT16 color type 2 facet attributes #x0001 color #x0002 normal 2 vertex attributes #x0001 color #x0002 normal #x0004 edges 2 unused 4 n number of lists d OPT_DATA facet data (see OPT_DATA for d) 4n+m*v LISTofLISTofVERTEX vertices (see VERTEX for v) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao TriangleStrip 3 2 95 output command number 2 4+((p-2)d+p*v)/4 output command length 2 INT16 color type 2 facet attributes #x0001 color #x0002 normal 2 vertex attributes #x0001 color #x0002 normal 2 unused 4 p number of points (p-2)d LISTofOPT_DATA facet data (see OPT_DATA for d) p*v LISTofVERTEX vertices (see VERTEX for v) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao QuadrilateralMesh 3 2 96 output command number 2 4+(d(m*n-n-m+1)+m*n*v)/4 output command length 2 INT16 color type 2 m number of points in m direction 2 n number of points in n direction 2 facet attributes #x0001 color #x0002 normal 2 vertex attributes #x0001 color #x0002 normal 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown (m-1)(n-1)d LISTofOPT_DATA facet data (see OPT_DATA for d) m*n*v LISTofVERTEX vertices (see VERTEX for v) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao SetOfFillAreaSets 3 (let s be the size of the data) (s = fc*d + vc*v + ec*e + p1 + 2fc + 2cc + 2ec + p2) 2 97 output command number 2 6+s/4 output command length 2 shape 0 Complex 1 Nonconvex 2 Convex 3 Unknown 2 INT16 color type 2 fill area set attributes #x0001 color #x0002 normal 2 vertex attributes #x0001 color #x0002 normal 2 edge attributes (call this value e) #x0001 On 1 contour hint 0 Disjoint 1 Nested 2 Intersecting 3 Unknown 1 all contour counts = 1 0 False 1 True 2 fc number of fill area sets 2 vc number of vertices 2 ec number of edges (sum of all contour counts) 2 cc number of contours fc*d LISTofOPT_DATA fill area set data (see OPT_DATA for d) vc*v LISTofVERTEX vertex data (see VERTEX for v) ec*e LISTofCARD8 edge data p1 unused, p1=pad(ec*e) (note that the counts in the connectivity data are CARD16s) 2fc+2cc+2ec LISTofLISTofLISTofCARD16 connectivity data p2 unused, p2=pad(2fc+2cc+2ec) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao NonUniformBSplineSurface 3 2 98 output command number 2 7+\fIfp\fP*(uk+vk+m*n*s)/4+t+sc/4 output command length 2 type 0 Rational 1 NonRational (s = (type == Rational) ? 4 : 3) 2 CARD16 u order 2 CARD16 v order 2 unused 4 uk number of u knots 4 vk number of v knots 2 m number of points in u direction 2 n number of points in v direction 4 t number of trim curve lists \fIfp\fP*uk LISTofFLOAT u knots \fIfp\fP*vk LISTofFLOAT v knots m*n*\fIfp\fP*s LISTofCOORD points (COORD_3D or COORD_4D depending on s) (let sc be sum of sizes of TRIM_CURVEs in bytes) 4t+sc LISTofLISTofTRIM_CURVE trim curves .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao CellArray3D 3 2 99 output command number 2 3+(9*\fIfp\fP+2q+p)/4 output command length \fIfp\fP FLOAT point1 x \fIfp\fP FLOAT point1 y \fIfp\fP FLOAT point1 z \fIfp\fP FLOAT point2 x \fIfp\fP FLOAT point2 y \fIfp\fP FLOAT point2 z \fIfp\fP FLOAT point3 x \fIfp\fP FLOAT point3 y \fIfp\fP FLOAT point3 z 4 CARD32 dx 4 CARD32 dy (let q = dx * dy) 2q LISTofCARD16 color indices p unused, p=pad(2q) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao CellArray2D 3 2 100 output command number 2 3+\fIfp\fP+(2s+p)/4 output command length \fIfp\fP FLOAT point1 x \fIfp\fP FLOAT point1 y \fIfp\fP FLOAT point2 x \fIfp\fP FLOAT point2 y 4 CARD32 dx 4 CARD32 dy (let s = dx * dy) 2s LISTofCARD16 color indices p unused, p=pad(2s) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao ExtendedCellArray3D 3 (n = ((color type == Indexed) || (color type == RGBInt8)) ? 1 : ((color type == RGBInt16) ? 2 : 3*\fIfp\fP/4)) 2 101 output command number 2 4+9*\fIfp\fP/4+p*n output command length 2 INT16 color type 2 unused \fIfp\fP FLOAT point1 x \fIfp\fP FLOAT point1 y \fIfp\fP FLOAT point1 z \fIfp\fP FLOAT point2 x \fIfp\fP FLOAT point2 y \fIfp\fP FLOAT point2 z \fIfp\fP FLOAT point3 x \fIfp\fP FLOAT point3 y \fIfp\fP FLOAT point3 z 4 CARD32 dx 4 CARD32 dy (let p = dx * dy) p*4*n LISTofCOLOR colors .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao GDP3D 3 2 102 output command number 2 4+(3*\fIfp\fP*p+d+q)/4 output command length 4 INT32 GDP identifier 4 p number of points 4 d number of bytes of data 3*\fIfp\fP*p LISTofCOORD_3D points d LISTofCARD8 data q unused, q=pad(d) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao GDP2D 3 2 103 output command number 2 4+(2*\fIfp\fP*p+d+q)/4 output command length 4 INT32 GDP identifier 4 p number of points 4 d number of bytes of data 2*\fIfp\fP*p LISTofCOORD_2D points d LISTofCARD8 data q unused, q=pad(d) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .Ao Noop 2 104 output command number 2 1 output command length .De .bp .AC "Lookup Tables" 1 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R LineBundle (12+2*\fIfp\fP+4*n) 2 INT16 line type 2 INT16 polyline interpolation method 2 INT16 curve approximation method 2 unused \fIfp\fP FLOAT curve approximation tolerance \fIfp\fP FLOAT line width 4+4*n COLOR_SPECIFIER line color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R MarkerBundle (8+\fIfp\fP+4*n) 2 INT16 marker type 2 unused \fIfp\fP FLOAT marker scale 4+4*n COLOR_SPECIFIER marker color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R TextBundle (8+2*\fIfp\fP+4*n) 2 CARD16 font table index 2 text precision 0 StringPrecision 1 CharPrecision 2 StrokePrecision \fIfp\fP FLOAT character expansion factor \fIfp\fP FLOAT character spacing 4+4*n COLOR_SPECIFIER text color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R InteriorBundle (36+12*\fIfp\fP+4*(n+n1+n2+n3)) 2 INT16 interior style 2 CARD16 | INT16 interior style index 2 INT16 reflection model 2 INT16 surface interpolation method 2 INT16 bf interior style 2 CARD16 | INT16 bf interior style index 2 INT16 bf reflection model 2 INT16 bf surface interpolation method 2 INT16 surface approximation method 2 unused \fIfp\fP FLOAT surface approximation u tolerance \fIfp\fP FLOAT surface approximation v tolerance 4+4*n COLOR_SPECIFIER surface color \fIfp\fP FLOAT reflection attribute ambient coefficient \fIfp\fP FLOAT reflection attribute diffuse coefficient \fIfp\fP FLOAT reflection attribute specular coefficient \fIfp\fP FLOAT reflection attribute specular concentration \fIfp\fP FLOAT reflection attribute transmission coefficient 4+4*n1 COLOR_SPECIFIER reflection attribute specular color 4+4*n2 COLOR_SPECIFIER bf surface color \fIfp\fP FLOAT bf reflection attribute ambient coefficient \fIfp\fP FLOAT bf reflection attribute diffuse coefficient \fIfp\fP FLOAT bf reflection attribute specular coefficient \fIfp\fP FLOAT bf reflection attribute specular concentration \fIfp\fP FLOAT bf reflection attribute transmission coefficient 4+4*n3 COLOR_SPECIFIER bf reflection attribute specular color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R EdgeBundle (8+\fIfp\fP+4*n) 1 surface edges 0 Off 1 On 1 unused 2 INT16 surface edge type \fIfp\fP FLOAT surface edge width 4+4*n COLOR_SPECIFIER surface edge color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Pattern (8+c*4*n) (n = ((color type == Indexed) || (color type == RGBInt8)) ? 1 : ((color type == RGBInt16) ? 2 : 3*\fIfp\fP/4)) 2 INT16 color type 2 CARD16 numx 2 CARD16 numy (let c = numx * numy) 2 unused c*4n LISTofCOLOR colors .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Color (4+4*n) n = ((color type == RGBInt8) ? 1 : ((color type == RGBInt16) ? 2 : 3*\fIfp\fP/4) 2 INT16 color type 2 unused 4n DIRECT_COLOR color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R TextFont (4+4n) 4 n number of font IDs 4n LISTofCARD32 font IDs .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R View (4+38*\fIfp\fP) 2 clip flags #x0001 clip_xy #x0002 clip_back #x0004 clip_front 2 unused \fIfp\fP FLOAT clip limits min x \fIfp\fP FLOAT clip limits min y \fIfp\fP FLOAT clip limits min z \fIfp\fP FLOAT clip limits max x \fIfp\fP FLOAT clip limits max y \fIfp\fP FLOAT clip limits max z 16*\fIfp\fP FLOAT[4][4] orientation 16*\fIfp\fP FLOAT[4][4] mapping .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Light (8+10*\fIfp\fP+4*n) 2 INT16 light type 2 unused \fIfp\fP FLOAT direction x \fIfp\fP FLOAT direction y \fIfp\fP FLOAT direction z \fIfp\fP FLOAT point x \fIfp\fP FLOAT point y \fIfp\fP FLOAT point z \fIfp\fP FLOAT concentration \fIfp\fP FLOAT spread angle \fIfp\fP FLOAT attenuation factor1 \fIfp\fP FLOAT attenuation factor2 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R DepthCue (8+4*\fIfp\fP+4*n) 1 mode 0 Off 1 On 3 unused \fIfp\fP FLOAT front plane \fIfp\fP FLOAT back plane \fIfp\fP FLOAT front scaling \fIfp\fP FLOAT back scaling 4+4*n COLOR_SPECIFIER color .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R ColorApprox (28+3*\fIfp\fP) 2 INT16 color approximation type 2 INT16 color approximation model 2 CARD16 max1 2 CARD16 max2 2 CARD16 max3 1 dither 0 Off 1 On 1 unused 4 CARD32 multiplier1 4 CARD32 multiplier2 4 CARD32 multiplier3 \fIfp\fP FLOAT weight1 \fIfp\fP FLOAT weight2 \fIfp\fP FLOAT weight3 4 CARD32 base pixel .De .AC "Lookup Table Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreateLookupTable 1 CARD8 opcode (X11 assigned) 1 4 PEX opcode 2 4 request length 4 CARD32 example drawable ID 4 CARD32 lookup table ID 2 table type 1 LineBundle 2 MarkerBundle 3 TextBundle 4 InteriorBundle 5 EdgeBundle 6 Pattern 7 TextFont 8 Color 9 View 10 Light 11 DepthCue 12 ColorApprox 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCopyLookupTable 1 CARD8 opcode (X11 assigned) 1 5 PEX opcode 2 3 request length 4 CARD32 source lookup table ID 4 CARD32 destination lookup table ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFreeLookupTable 1 CARD8 opcode (X11 assigned) 1 6 PEX opcode 2 2 request length 4 CARD32 lookup table ID .De .AC "Lookup Table Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetTableInfo 1 CARD8 opcode (X11 assigned) 1 7 PEX opcode 2 3 request length 4 CARD32 example drawable ID 2 table type 1 LineBundle 2 MarkerBundle 3 TextBundle 4 InteriorBundle 5 EdgeBundle 6 Pattern 7 TextFont 8 Color 9 View 10 Light 11 DepthCue 12 ColorApprox 2 unused .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 unused 2 CARD16 definable entries 2 CARD16 num predefined 2 CARD16 predefined min 2 CARD16 predefined max 14 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetPredefinedEntries 1 CARD8 opcode (X11 assigned) 1 8 PEX opcode 2 5 request length 2 INT16 floating point format 2 unused 4 CARD32 example drawable ID 2 table type 1 LineBundle 2 MarkerBundle 3 TextBundle 4 InteriorBundle 5 EdgeBundle 6 Pattern 7 TextFont 8 Color 9 View 10 Light 11 DepthCue 12 ColorApprox 2 CARD16 start 2 n count 2 unused .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 s/4 reply length 4 unused 4 n number of table entries 16 unused (let s be the sum of the sizes of the n table \ entries in bytes) (each entry may be a different size, depending \ on colors and floating point format) s LISTofTABLE_ENTRY entries (each entry will be aligned on a 4-byte boundary) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetDefinedIndices 1 CARD8 opcode (X11 assigned) 1 9 PEX opcode 2 2 request length 4 CARD32 lookup table ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 (2n+p)/4 reply length 4 n number of indices returned 20 unused 2n LISTofCARD16 defined indices p unused, p=pad(2n) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetTableEntry 1 CARD8 opcode (X11 assigned) 1 10 PEX opcode 2 4 request length 2 INT16 floating point format 2 value type 0 Set 1 Realized 4 CARD32 lookup table ID 2 CARD16 index 2 unused .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 s/4 reply length 2 status 0 Default 1 Defined 2 t table type 1 LineBundle 2 MarkerBundle 3 TextBundle 4 InteriorBundle 5 EdgeBundle 6 Pattern 7 TextFont 8 Color 9 View 10 Light 11 DepthCue 12 ColorApprox 20 unused (let s be size of entry of type t) (entry size differs, depending on colors \ and floating point format) s TABLE_ENTRY entry .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetTableEntries 1 CARD8 opcode (X11 assigned) 1 11 PEX opcode 2 4 request length 2 INT16 floating point format 2 value type 0 Set 1 Realized 4 CARD32 lookup table ID 2 CARD16 start 2 n count .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 s/4 reply length 2 t table type 1 LineBundle 2 MarkerBundle 3 TextBundle 4 InteriorBundle 5 EdgeBundle 6 Pattern 7 TextFont 8 Color 9 View 10 Light 11 DepthCue 12 ColorApprox (let s be the sum of the sizes of the n table \ entries in bytes) (each entry may be a different size, depending \ on colors and floating point format) 2 unused 4 n number of table entries 16 unused s LISTofTABLE_ENTRY entries .De .AC "Lookup Table Modification" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetTableEntries 1 CARD8 opcode (X11 assigned) 1 12 PEX opcode 2 4+s/4 request length 2 INT16 floating point format 2 unused 4 CARD32 lookup table ID 2 CARD16 start 2 n count (let s be the sum of the sizes of the n table \ entries in bytes) (each entry may be a different size, depending \ on colors and floating point format) s LISTofTABLE_ENTRY entries .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXDeleteTableEntries 1 CARD8 opcode (X11 assigned) 1 13 PEX opcode 2 3 request length 4 CARD32 lookup table ID 2 CARD16 start 2 CARD16 count .De .bp .AC "Pipeline Contexts" 1 .LP The following components may appear in the requests \fBPEXCreatePipelineContext\fP and \fBPEXChangePipelineContext\fP; they may also appear in replies to \fBPEXGetPipelineContext\fP. Because the components are not of a fixed size (as they are in X11), the list must be parsed serially to know where one component ends and the next begins. A bitmap mask of three CARD32s specifies which components are to be found in a list. Proceding from the least significant bit of the first CARD32 through to the last used bit of the third CARD32, if the bit is set, the next item in the list is of the specified type. .sp 1 .LP .Ds 0 .TA .2i 1i .ta .2i 1i PC_BITMASK .sp 1 First CARD32: #x00000001 marker_type #x00000002 marker_scale #x00000004 marker_color #x00000008 marker_bundle_index #x00000010 text_font_index #x00000020 text_precision #x00000040 char_expansion #x00000080 char_spacing #x00000100 text_color #x00000200 char_height #x00000400 char_up_vector #x00000800 text_path #x00001000 text_alignment #x00002000 atext_height #x00004000 atext_up_vector #x00008000 atext_path #x00010000 atext_alignment #x00020000 atext_style #x00040000 text_bundle_index #x00080000 line_type #x00100000 line_width #x00200000 line_color #x00400000 curve_approx #x00800000 polyline_interp #x01000000 line_bundle_index #x02000000 interior_style #x04000000 interior_style_index #x08000000 surface_color #x10000000 reflection_attr #x20000000 reflection_model #x40000000 surface_interp #x80000000 bf_interior_style Second CARD32: #x00000001 bf_interior_style_index #x00000002 bf_surface_color #x00000004 bf_reflection_attr #x00000008 bf_reflection_model #x00000010 bf_surface_interp #x00000020 surface_approx #x00000040 culling_mode #x00000080 distinguish #x00000100 pattern_size #x00000200 pattern_ref_pt #x00000400 pattern_ref_vec1 #x00000800 pattern_ref_vec2 #x00001000 interior_bundle_index #x00002000 surface_edges #x00004000 surface_edge_type #x00008000 surface_edge_width #x00010000 surface_edge_color #x00020000 edge_bundle_index #x00040000 local_transform #x00080000 global_transform #x00100000 model_clip #x00200000 model_clip_volume #x00400000 view_index #x00800000 light_state #x01000000 depth_cue_index #x02000000 asfs #x04000000 pick_id #x08000000 HLHSR_identifier #x10000000 name_set #x20000000 color_approx_index #x40000000 rdr_color_model #x80000000 psurf_char Third CARD32: No bits are yet defined. Must be zero. .sp 1 ASF flags bits: #x00000001 marker_type_asf #x00000002 marker_scale_asf #x00000004 marker_color_asf #x00000008 text_font_index_asf #x00000010 text_precison_asf #x00000020 char_expansion_asf #x00000040 char_spacing_asf #x00000080 text_color_asf #x00000100 line_type_asf #x00000200 line_width_asf #x00000400 line_color_asf #x00000800 curve_approx_asf #x00001000 polyline_interp_asf #x00002000 interior_style_asf #x00004000 interior_style_index_asf #x00008000 surface_color_asf #x00010000 surface_interp_asf #x00020000 reflection_model_asf #x00040000 reflection_attr_asf #x00080000 bf_interior_style_asf #x00100000 bf_interior_style_index_asf #x00200000 bf_surface_color_asf #x00400000 bf_surface_interp_asf #x00800000 bf_reflection_model_asf #x01000000 bf_reflection_attr_asf #x02000000 surface_approx_asf #x04000000 surface_edges_asf #x08000000 surface_edge_type_asf #x10000000 surface_edge_width_asf #x20000000 surface_edge_color_asf .De .LP Note that entries in the list are all padded to a multiple of 4 bytes. If values appear which could be encoded in less space, it is assumed that they will be placed in the least significant bits of the word. If a component has sub-fields, the sizes, types and interpretations of the sub-fields are on subsequent lines. .LP .Ds 0 .TA 2i 2.3i 2.9i 3.6i 4.2i .ta 2i 2.3i 2.9i 3.6i 4.2i .R \fBAttribute Name Length Type\fP .sp 1 marker_type 4 INT16 marker_scale \fIfp\fP FLOAT marker_color 4+4*n COLOR_SPECIFIER marker_bundle_index 4 CARD16 text_font_index 4 CARD16 text_precision 4 CARD16 0 StringPrecision 1 CharPrecision 2 StrokePrecision char_expansion \fIfp\fP FLOAT char_spacing \fIfp\fP FLOAT text_color 4+4*n COLOR_SPECIFIER char_height \fIfp\fP FLOAT char_up_vector 2*\fIfp\fP \fIfp\fP FLOAT x \fIfp\fP FLOAT y text_path 4 CARD16 0 PathRight 1 PathLeft 2 PathUp 3 PathDown text_alignment 4 2 CARD16 alignment vertical 0 ValignNormal 1 ValignTop 2 ValignCap 3 ValignHalf 4 ValignBase 5 ValignBottom 2 CARD16 alignment horizontal 0 HalignNormal 1 HalignLeft 2 HalignCenter 3 HalignRight atext_height \fIfp\fP FLOAT atext_up_vector 2*\fIfp\fP \fIfp\fP FLOAT x \fIfp\fP FLOAT y atext_path 4 CARD16 0 PathRight 1 PathLeft 2 PathUp 3 PathDown atext_alignment 4 2 CARD16 alignment vertical 0 ValignNormal 1 ValignTop 2 ValignCap 3 ValignHalf 4 ValignBase 5 ValignBottom 2 CARD16 alignment horizontal 0 HalignNormal 1 HalignLeft 2 HalignCenter 3 HalignRight atext_style 4 INT16 text_bundle_index 4 CARD16 line_type 4 INT16 line_width \fIfp\fP FLOAT line_color 4+4*n COLOR_SPECIFIER curve_approx 4+\fIfp\fP 4 INT16 curve approximation method \fIfp\fP FLOAT curve approximation tolerance polyline_interp 4 INT16 line_bundle_index 4 CARD16 interior_style 4 INT16 interior_style_index 4 INT16 | CARD16 surface_color 4+4*n COLOR_SPECIFIER reflection_attr 4+5*\fIfp\fP+4*n \fIfp\fP FLOAT ambient coefficient \fIfp\fP FLOAT diffuse coefficient \fIfp\fP FLOAT specular coefficient \fIfp\fP FLOAT specular concentration \fIfp\fP FLOAT transmission coefficient 4+4*n COLOR_SPECIFIER specular color reflection_model 4 INT16 surface_interp 4 INT16 bf_interior_style 4 INT16 bf_interior_style_index 4 INT16 | CARD16 bf_surface_color 4+4*n COLOR_SPECIFIER bf_reflection_attr 4+5*\fIfp\fP+4*n \fIfp\fP FLOAT ambient coefficient \fIfp\fP FLOAT diffuse coefficient \fIfp\fP FLOAT specular coefficient \fIfp\fP FLOAT specular concentration \fIfp\fP FLOAT transmission coefficient 4+4*n COLOR_SPECIFIER specular color bf_reflection_model 4 INT16 bf_surface_interp 4 INT16 surface_approx 4+2*\fIfp\fP 4 INT16 surface approximation method \fIfp\fP FLOAT surface approximation u tolerance \fIfp\fP FLOAT surface approximation v tolerance culling_mode 4 CARD16 0 None 1 BackFaces 2 FrontFaces distinguish 4 CARD8 0 False 1 True pattern_size 2*\fIfp\fP \fIfp\fP FLOAT x \fIfp\fP FLOAT y pattern_ref_pt 3*\fIfp\fP \fIfp\fP FLOAT x \fIfp\fP FLOAT y \fIfp\fP FLOAT z pattern_ref_vec1 3*\fIfp\fP \fIfp\fP FLOAT x \fIfp\fP FLOAT y \fIfp\fP FLOAT z pattern_ref_vec2 3*\fIfp\fP \fIfp\fP FLOAT x \fIfp\fP FLOAT y \fIfp\fP FLOAT z interior_bundle_index 4 CARD16 surface_edges 4 CARD16 0 Off 1 On surface_edge_type 4 INT16 surface_edge_width \fIfp\fP FLOAT surface_edge_color 4+4*n COLOR_SPECIFIER edge_bundle_index 4 CARD16 local_transform 16*\fIfp\fP FLOAT[4][4] global_transform 16*\fIfp\fP FLOAT[4][4] model_clip 4 CARD16 0 Clip 1 NoClip model_clip_volume 4+6*\fIfp\fP*n 4 n number of half spaces 6*\fIfp\fP*n LISTofHALF_SPACE view_index 4 CARD16 light_state 4+2n+p 4 n number of lights in active list 2n LISTofCARD16 indices of active lights p unused, p=pad(2n) depth_cue_index 4 CARD16 asf_enables 4 CARD32 (see note below) asfs 4 CARD32 0 Bundled 1 Individual pick_id 4 CARD32 HLHSR_identifier 4 CARD32 name_set 4 CARD32 color_approx_index 4 CARD16 rdr_color_model 4 INT16 psurf_char 4+n 2 INT16 characteristics 2 n length of data in bytes n LISTofCARD8 data (explicitly padded) .sp 1 .De .LP \fINote:\fR The asf_enables field is only used for the \fBPEXCreatePipelineContext\fP and \fBPEXChangePipelineContext\fP requests. For those requests, if the asf_enables bit for a particular asf is set, the asf value is taken from the corresponding bit in the asfs field. For the \fBPEXGetPipelineContext\fP reply, asf_enables is present, but has no meaning and must have all defined asf bits set. .AC "Pipeline Context Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreatePipelineContext 1 CARD8 opcode (X11 assigned) 1 14 PEX opcode 2 6+n/4 request length 2 INT16 floating point format 2 unused 4 CARD32 pipeline context ID 12 PC_BITMASK item mask n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCopyPipelineContext 1 CARD8 opcode (X11 assigned) 1 15 PEX opcode 2 6 request length 4 CARD32 source pipeline context ID 4 CARD32 destination pipeline context ID 12 PC_BITMASK item mask .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFreePipelineContext 1 CARD8 opcode (X11 assigned) 1 16 PEX opcode 2 2 request length 4 CARD32 pipeline context ID .De .AC "Pipeline Context Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetPipelineContext 1 CARD8 opcode (X11 assigned) 1 17 PEX opcode 2 6 request length 2 INT16 floating point format 2 unused 4 CARD32 pipeline context ID 12 PC_BITMASK item mask .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n/4 reply length 24 unused n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .AC "Pipeline Context Modification" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXChangePipelineContext 1 CARD8 opcode (X11 assigned) 1 18 PEX opcode 2 6+n/4 request length 2 INT16 floating point format 2 unused 4 CARD32 pipeline context ID 12 PC_BITMASK item mask n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .bp .AC "Renderers" 1 .LP .Ds 0 .TA .2i 1i .ta .2i 1i R_BITMASK .sp 1 #x00000001 pipeline_context_id #x00000002 current_path #x00000004 marker_bundle #x00000008 text_bundle #x00000010 line_bundle #x00000020 interior_bundle #x00000040 edge_bundle #x00000080 view_table #x00000100 color_table #x00000200 depth_cue_table #x00000400 light_table #x00000800 color_approx_table #x00001000 pattern_table #x00002000 text_font_table #x00004000 highlight_inclusion #x00008000 highlight_exclusion #x00010000 invisibility_inclusion #x00020000 invisibility_exclusion #x00040000 renderer_state #x00080000 HLHSR_mode #x00100000 NPC_subvolume #x00200000 viewport #x00400000 clip_list #x00800000 pick_inclusion #x01000000 pick_exclusion #x02000000 pick_start_path #x04000000 background_color #x08000000 clear_I #x10000000 clear_Z #x20000000 echo_mode .De .LP Note that entries in the list are all padded to a multiple of 4 bytes. If values appear which could be encoded in less space, it is assumed that they will be placed in the least significant bits of the word. If a component has sub-fields, the sizes, types and interpretations of the sub-fields are on subsequent lines. .LP .Ds 0 .TA 2i 2.3i 2.9i 3.6i 4.2i .ta 2i 2.3i 2.9i 3.6i 4.2i .R \fBAttribute Name Length Type\fP .sp 1 pipeline_context 4 CARD32 current_path 4+8n 4 n number of element references 8n LISTofELEMENT_REF marker_bundle 4 CARD32 text_bundle 4 CARD32 line_bundle 4 CARD32 interior_bundle 4 CARD32 edge_bundle 4 CARD32 view_table 4 CARD32 color_table 4 CARD32 depth_cue_table 4 CARD32 light_table 4 CARD32 color_approx_table 4 CARD32 pattern_table 4 CARD32 text_font_table 4 CARD32 highlight_inclusion 4 CARD32 highlight_exclusion 4 CARD32 invisibility_inclusion 4 CARD32 invisibility_exclusion 4 CARD32 renderer_state 4 CARD16 0 Idle 1 Rendering 2 Picking HLHSR_mode 4 INT16 NPC_subvolume 6*\fIfp\fP \fIfp\fP FLOAT min x \fIfp\fP FLOAT min y \fIfp\fP FLOAT min z \fIfp\fP FLOAT max x \fIfp\fP FLOAT max y \fIfp\fP FLOAT max z viewport 12+2*\fIfp\fP 2 INT16 min x 2 INT16 min y \fIfp\fP FLOAT min z 2 INT16 max x 2 INT16 max y \fIfp\fP FLOAT max z 1 CARD8 use drawable 0 False 1 True 3 unused clip_list 4+8n 4 n number of device rectangles 8n LISTofDEVICE_RECT pick_inclusion 4 CARD32 pick_exclusion 4 CARD32 pick_start_path 4+8n 4 n number of element refs 8n LISTofELEMENT_REF background_color 4+4n COLOR_SPECIFIER clear_I 4 CARD8 0 False 1 True clear_Z 4 CARD8 0 False 1 True echo_mode 4 CARD16 0 NoEcho 1 Echo 2 UnEcho .AC "Renderer Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreateRenderer 1 CARD8 opcode (X11 assigned) 1 19 PEX opcode 2 5+n/4 request length 2 INT16 floating point format 2 unused 4 CARD32 renderer ID 4 CARD32 example drawable ID 4 R_BITMASK item mask n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFreeRenderer 1 CARD8 opcode (X11 assigned) 1 20 PEX opcode 2 2 request length 4 CARD32 renderer ID .De .AC "Renderer Modification" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXChangeRenderer 1 CARD8 opcode (X11 assigned) 1 21 PEX opcode 2 4+n/4 request length 2 INT16 floating point format 2 unused 4 CARD32 renderer ID 4 R_BITMASK item mask n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .AC "Renderer Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetRendererAttributes 1 CARD8 opcode (X11 assigned) 1 22 PEX opcode 2 4 request length 2 INT16 floating point format 2 unused 4 CARD32 renderer ID 4 R_BITMASK item mask .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n/4 reply length 24 unused n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetRendererDynamics 1 CARD8 opcode (X11 assigned) 1 23 PEX opcode 2 2 request length 4 CARD32 renderer ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 4 tables #x00000001 DynMarkerBundle #x00000002 DynTextBundle #x00000004 DynLineBundle #x00000008 DynInteriorBundle #x00000010 DynEdgeBundle #x00000020 DynViewTable #x00000040 DynColorTable #x00000080 DynDepthCueTable #x00000100 DynLightTable #x00000200 DynColorApproxTable #x00000400 DynPatternTable #x00000800 DynTextFontTable #x00010000 DynMarkerBundleContents #x00020000 DynTextBundleContents #x00040000 DynLineBundleContents #x00080000 DynInteriorBundleContents #x00100000 DynEdgeBundleContents #x00200000 DynViewTableContents #x00400000 DynColorTableContents #x00800000 DynDepthCueTableContents #x01000000 DynLightTableContents #x02000000 DynColorApproxTableContents #x04000000 DynPatternTableContents #x08000000 DynTextFontTableContents 4 namesets #x00000001 DynHighlightNameset #x00000002 DynInvisibilityNameset #x00000004 DynPickNameset #x00010000 DynHighlightNamesetContents #x00020000 DynInvisibilityNamesetContents #x00040000 DynPickNamesetContents 4 attributes #x00000001 DynHLHSRMode #x00000002 DynNPCSubvolume #x00000004 DynViewport #x00000008 DynClipList #x00000010 DynEchoMode 12 unused .De .AC "Client-Side Traversal Support" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXBeginRendering 1 CARD8 opcode (X11 assigned) 1 24 PEX opcode 2 3 request length 4 CARD32 renderer ID 4 CARD32 drawable ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXEndRendering 1 CARD8 opcode (X11 assigned) 1 25 PEX opcode 2 3 request length 4 CARD32 renderer ID 1 flush 0 False 1 True 3 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXBeginStructure 1 CARD8 opcode (X11 assigned) 1 26 PEX opcode 2 3 request length 4 CARD32 renderer ID 4 CARD32 structure ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXEndStructure 1 CARD8 opcode (X11 assigned) 1 27 PEX opcode 2 2 request length 4 CARD32 renderer ID .De .AC "Rendering Commands" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXRenderOutputCommands 1 CARD8 opcode (X11 assigned) 1 28 PEX opcode 2 4+s/4 request length 2 INT16 floating point format 2 unused 4 CARD32 renderer ID 4 n number of commands (let s be the total size of the output commands in bytes) s LISTofOUTPUT_COMMAND cmds .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXRenderElements 1 CARD8 opcode (X11 assigned) 1 97 PEX opcode 2 7 request length 4 CARD32 renderer ID 4 CARD32 structure ID 2 position1 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position1 offset 2 position2 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position2 offset .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXAccumulateState 1 CARD8 opcode (X11 assigned) 1 98 PEX opcode 2 3+2n request length 4 CARD32 renderer ID 4 n number element refs 8n LISTofELEMENT_REF path .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXRenderNetwork 1 CARD8 opcode (X11 assigned) 1 29 PEX opcode 2 4 request length 4 CARD32 renderer ID 4 CARD32 drawable ID 4 CARD32 structure ID .De .bp .AC "Renderer Picking" 1 .LP .AC "Pick One" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXBeginPickOne 1 CARD8 opcode (X11 assigned) 1 99 PEX opcode 2 6+n request length 2 INT16 floating point format 2 INT16 pick one method 1 Last 2 ClosestZ 3 VisibleAny 4 VisibleClosest 4 CARD32 renderer ID 4 CARD32 drawable ID 4 INT32 structure identifer (not resource ID) 4+4n PICK_RECORD pick data .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXEndPickOne 1 CARD8 opcode (X11 assigned) 1 100 PEX opcode 2 2 request length 4 CARD32 renderer ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 3n reply length 4 n number of pick element refs 2 pick status 0 NoPick 1 Ok 2 Aborted 1 better pick 0 False 1 True 17 unused 12n LISTofPICK_ELEMENT_REF pick path .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXPickOne 1 CARD8 opcode (X11 assigned) 1 101 PEX opcode 2 6+n request length 2 INT16 floating point format 2 INT16 pick one method 1 Last 2 ClosestZ 3 VisibleAny 4 VisibleClosest 4 CARD32 renderer ID 4 CARD32 drawable ID 4 CARD32 structure identifer 4+4n PICK_RECORD pick data .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 3n reply length 4 n number of pick element refs 2 pick status 0 NoPick 1 Ok 2 Aborted 1 better pick 0 False 1 True 17 unused 12n LISTofPICK_ELEMENT_REF pick path .De .LP .AC "Pick All" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXBeginPickAll 1 CARD8 opcode (X11 assigned) 1 102 PEX opcode 2 8+n request length 2 INT16 floating point format 2 INT16 pick all method 1 All 2 Visible 1 CARD8 send_event 0 False 1 True 3 unused 4 CARD32 renderer ID 4 CARD32 drawable ID 4 INT32 structure identifer (not resource ID) 4 CARD32 pick max hits 4+4n PICK_RECORD pick data .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXEndPickAll 1 CARD8 opcode (X11 assigned) 1 103 PEX opcode 2 2 request length 4 CARD32 renderer ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n+3m reply length (let m be the number of element refs) 4 n number pick paths 2 pick status 0 NoPick 1 Ok 2 Aborted 2 more picks 0 MoreHits 1 NoMoreHits 2 MayBeMoreHits 16 unused 4n+12m LISTofLISTofPICK_ELEMENT_REF pick paths .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXPickAll 1 CARD8 opcode (X11 assigned) 1 104 PEX opcode 2 6+n request length 2 INT16 floating point format 2 INT16 pick all method 1 All 2 Visible 4 CARD32 renderer ID 4 CARD32 drawable ID 4 CARD32 pick max hits 4+4n PICK_RECORD pick data .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n+3m reply length (let m be the number of element refs) 4 n number pick paths 2 pick status 0 NoPick 1 Ok 2 Aborted 2 more picks 0 MoreHits 1 NoMoreHits 2 MayBeMoreHits 16 unused 4n+12m LISTofLISTofPICK_ELEMENT_REF pick paths .De .bp .AC "Structures" 1 .LP .AC "Structure Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreateStructure 1 CARD8 opcode (X11 assigned) 1 30 PEX opcode 2 2 request length 4 CARD32 structure ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCopyStructure 1 CARD8 opcode (X11 assigned) 1 31 PEX opcode 2 3 request length 4 CARD32 source structure ID 4 CARD32 destination structure ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXDestroyStructures 1 CARD8 opcode (X11 assigned) 1 32 PEX opcode 2 2+n request length 4 CARD32 number of structure IDs 4n LISTofCARD32 list of structure IDs .De .AC "Structure Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetStructureInfo 1 CARD8 opcode (X11 assigned) 1 33 PEX opcode 2 3 request length 2 INT16 floating point format 2 item mask #x0001 element_ptr #x0002 num_elements #x0004 total_length #x0008 has_refs #x0010 editing_mode 4 CARD32 structure ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 editing mode 0 StructureInsert 1 StructureReplace 2 unused 4 CARD32 element pointer 4 CARD32 number of elements 4 CARD32 total length 2 has references 0 False 1 True 6 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetElementInfo 1 CARD8 opcode (X11 assigned) 1 34 PEX opcode 2 7 request length 2 INT16 floating point format 2 unused 4 CARD32 structure ID 2 position1 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position1 offset 2 position2 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position2 offset .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 4 n number of element info 20 unused 4n LISTofELEMENT_INFO info .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetStructuresInNetwork 1 CARD8 opcode (X11 assigned) 1 35 PEX opcode 2 3 request length 4 CARD32 structure ID 2 which 0 All 1 NoCrossRefs 2 unused .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 8 unused 4 n number of structures 12 unused 4n LISTofSTRUCTURE_ID structure IDs .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetAncestors 1 CARD8 opcode (X11 assigned) 1 36 PEX opcode 2 4 request length 4 CARD32 structure ID 2 path part 0 TopPart 1 BottomPart 2 unused 4 CARD32 path depth .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n+2s reply length 12 unused 4 n number of element reference lists 8 unused (let s be the sum of these n numbers) 4n+8s LISTofLISTofELEMENT_REF paths .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetDescendants 1 CARD8 opcode (X11 assigned) 1 37 PEX opcode 2 4 request length 4 CARD32 structure ID 2 path part 0 TopPart 1 BottomPart 2 unused 4 CARD32 path depth .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n+2s reply length 12 unused 4 n number of element reference lists 8 unused (let s = sum of these n numbers) 4n+8s LISTofLISTofELEMENT_REF paths .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFetchElements 1 CARD8 opcode (X11 assigned) 1 38 PEX opcode 2 7 request length 2 INT16 floating point format 2 unused 4 CARD32 structure ID 2 position1 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position1 offset 2 position2 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position2 offset .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 s/4 reply length 4 CARD32 number of output commands 20 unused (let s be the total size of the output commands in bytes) s LISTofOUTPUT_COMMAND elements .De .AC "Structure Resource Attribute Modification" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetEditingMode 1 CARD8 opcode (X11 assigned) 1 39 PEX opcode 2 3 request length 4 CARD32 structure ID 2 mode 0 StructureInsert 1 StructureReplace 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetElementPointer 1 CARD8 opcode (X11 assigned) 1 40 PEX opcode 2 4 request length 4 CARD32 structure ID 2 position whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position offset .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetElementPointerAtLabel 1 CARD8 opcode (X11 assigned) 1 41 PEX opcode 2 4 request length 4 CARD32 structure ID 4 INT32 label 4 INT32 offset .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXElementSearch 1 CARD8 opcode (X11 assigned) 1 42 PEX opcode 2 7+(2i+2e+p+p2)/4 request length 4 CARD32 structure ID 2 position whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position offset 4 direction 0 Forward 1 Backward 4 i number of elements in inclusion list 4 e number of elements in exclusion list 2i LISTofCARD16 inclusion list p unused, p=pad(2i) 2e LISTofCARD16 exclusion list p2 unused, p2=pad(2e) .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 status 1 NotFound 2 Found 2 unused 4 CARD32 found offset 16 unused .De .AC "Structure Editing" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXStoreElements 1 CARD8 opcode (X11 assigned) 1 43 PEX opcode 2 4+s/4 request length 2 INT16 floating point format 2 unused 4 CARD32 structure ID 4 n number of output commands (let s be the total size of the output commands in bytes) s LISTofOUTPUT_COMMAND elements .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXDeleteElements 1 CARD8 opcode (X11 assigned) 1 44 PEX opcode 2 6 request length 4 CARD32 structure ID 2 position1 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position1 offset 2 position2 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position2 offset .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXDeleteElementsToLabel 1 CARD8 opcode (X11 assigned) 1 45 PEX opcode 2 5 request length 4 CARD32 structure ID 2 position whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 position offset 4 INT32 label .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXDeleteElementsBetweenLabels 1 CARD8 opcode (X11 assigned) 1 46 PEX opcode 2 4 request length 4 CARD32 structure ID 4 INT32 label1 4 INT32 label2 .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCopyElements 1 CARD8 opcode (X11 assigned) 1 47 PEX opcode 2 9 request length 4 CARD32 source structure ID 2 source position1 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 source position1 offset 2 source position2 whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 source position2 offset 4 CARD32 destination structure ID 2 destination position whence 0 Beginning 1 Current 2 End 2 unused 4 INT32 destination position offset .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXChangeStructureReferences 1 CARD8 opcode (X11 assigned) 1 48 PEX opcode 2 3 request length 4 CARD32 old structure ID 4 CARD32 new structure ID .De .bp .AC "Name Sets" 1 .LP .AC "Name Set Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreateNameSet 1 CARD8 opcode (X11 assigned) 1 49 PEX opcode 2 2 request length 4 CARD32 nameset ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCopyNameSet 1 CARD8 opcode (X11 assigned) 1 50 PEX opcode 2 3 request length 4 CARD32 source nameset ID 4 CARD32 destination nameset ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFreeNameSet 1 CARD8 opcode (X11 assigned) 1 51 PEX opcode 2 2 request length 4 CARD32 nameset ID .De .AC "Name Set Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetNameSet 1 CARD8 opcode (X11 assigned) 1 52 PEX opcode 2 2 request length 4 CARD32 nameset ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 4 n number of names 20 unused 4n LISTofNAME names .De .AC "Name Set Modification" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXChangeNameSet 1 CARD8 opcode (X11 assigned) 1 53 PEX opcode 2 3+n request length 4 CARD32 nameset ID 2 action 0 Add 1 Remove 2 Replace 2 unused 4n LISTofNAME names (length implicit) .bp .AC "Search Contexts" 1 .LP .Ds 0 .TA .2i 1i .ta .2i 1i SC_BITMASK .sp 1 #x0001 search_pos #x0002 search_dist #x0004 search_ceiling #x0008 model_clip_flag #x0010 start_path #x0020 normal_list #x0040 inverted_list .De .LP Note that entries in the list are all padded to a multiple of 4 bytes. If values appear which could be encoded in less space, it is assumed that they will be placed in the least significant bits of the word. If a component has sub-fields, the sizes, types and interpretations of the sub-fields are on subsequent lines. .LP .Ds 0 .TA 2i 2.3i 2.9i 3.6i 4.2i .ta 2i 2.3i 2.9i 3.6i 4.2i .R \fBAttribute Name Length Type\fP .sp 1 search_pos 3*\fIfp\fP \fIfp\fP FLOAT x \fIfp\fP FLOAT y \fIfp\fP FLOAT z search_dist \fIfp\fP FLOAT search_ceiling 4 CARD16 model_clip_flag 4 CARD8 0 False 1 True start_path 4+8n 4 n length of LIST 8n LISTofELEMENT_REF normal_list 4+8n 4 n length of LIST 8n LISTofNAME_SET_PAIR inverted_list 4+8n 4 n length of LIST 8n LISTofNAME_SET_PAIR .AC "Search Context Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreateSearchContext 1 CARD8 opcode (X11 assigned) 1 54 PEX opcode 2 4+n/4 request length 2 INT16 floating point format 2 unused 4 CARD32 search context ID 4 SC_BITMASK item mask n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCopySearchContext 1 CARD8 opcode (X11 assigned) 1 55 PEX opcode 2 4 request length 4 CARD32 source search context ID 4 CARD32 destination search context ID 4 SC_BITMASK item mask .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFreeSearchContext 1 CARD8 opcode (X11 assigned) 1 56 PEX opcode 2 2 request length 4 CARD32 search context ID .De .AC "Search Context Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetSearchContext 1 CARD8 opcode (X11 assigned) 1 57 PEX opcode 2 4 request length 2 INT16 floating point format 2 unused 4 CARD32 search context ID 4 SC_BITMASK item mask .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n/4 reply length 24 unused n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .AC "Search Context Modification" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXChangeSearchContext 1 CARD8 opcode (X11 assigned) 1 58 PEX opcode 2 4+n/4 request length 2 INT16 floating point format 2 unused 4 CARD32 search context ID 4 SC_BITMASK item mask n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .AC "Structure Network Searching" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSearchNetwork 1 CARD8 opcode (X11 assigned) 1 59 PEX opcode 2 2 request length 4 CARD32 search context ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 2n reply length 4 unused 4 n number of element references 16 unused 8n LISTofELEMENT_REF found path .De .bp .AC "PHIGS Workstations" 1 .LP .AC "PHIGS Workstation Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreatePhigsWKS 1 CARD8 opcode (X11 assigned) 1 60 PEX opcode 2 19 request length 4 CARD32 PHIGS workstation ID 4 CARD32 drawable ID 4 CARD32 marker bundle ID 4 CARD32 text bundle ID 4 CARD32 line bundle ID 4 CARD32 interior bundle ID 4 CARD32 edge bundle ID 4 CARD32 color table ID 4 CARD32 depth cue table ID 4 CARD32 light table ID 4 CARD32 color approximation table ID 4 CARD32 pattern table ID 4 CARD32 text font table ID 4 CARD32 highlight inclusion ID 4 CARD32 highlight exclusion ID 4 CARD32 invisibility inclusion ID 4 CARD32 invisibility exclusion ID 2 buffer mode 0 Single 1 Double 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFreePhigsWKS 1 CARD8 opcode (X11 assigned) 1 61 PEX opcode 2 2 request length 4 CARD32 PHIGS workstation ID .De .AC "PHIGS Workstation Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetWKSInfo 1 CARD8 opcode (X11 assigned) 1 62 PEX opcode 2 5 request length 2 INT16 floating point format 2 unused 4 CARD32 PHIGS workstation ID 8 WKS_BITMASK item mask (see below) .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n/4 reply length 24 unused n LISTofVALUE item list (see below) (let n be the size of the list, in bytes.) .LP The following components may appear in the reply of \fBPEXGetWKSInfo\fP. Because the components are not of a fixed size (as they are in X11), the list must be parsed serially to know where one component ends and the next begins. A bitmap mask of two CARD32s in the request specifies which components are to be found in the reply. Proceding from the least significant bit of the first CARD32 through to the last used bit of the second CARD32, if the bit is set, the next item in the list is of the specified type. .sp 1 .LP .Ds 0 .TA .2i 1i .ta .2i 1i WKS_BITMASK .sp 1 First CARD32: #x00000001 display_update #x00000002 visual_state #x00000004 display_surface #x00000008 view_update #x00000010 defined_views #x00000020 wks_update #x00000040 req_NPC_subvolume #x00000080 cur_NPC_subvolume #x00000100 req_wks_viewpt #x00000200 cur_wks_viewpt #x00000400 HLHSR_update #x00000800 req_HLHSR_mode #x00001000 cur_HLHSR_mode #x00002000 drawable_id #x00004000 marker_bundle #x00008000 text_bundle #x00010000 line_bundle #x00020000 interior_bundle #x00040000 edge_bundle #x00080000 color_table #x00100000 depth_cue_table #x00200000 light_table #x00400000 color_approx_table #x00800000 pattern_table #x01000000 text_font_table #x02000000 highlight_inclusion #x04000000 highlight_exclusion #x08000000 invisibility_inclusion #x10000000 invisibility_exclusion #x20000000 posted_structs #x40000000 num_priorities #x80000000 buffer_update Second CARD32: #x00000001 req_buffer_mode #x00000002 cur_buffer_mode .De .LP Note that entries in the list are all padded to a multiple of 4 bytes. If values appear which could be encoded in less space, it is assumed that they will be placed in the least significant bits of the word. If a component has sub-fields, the sizes, types and interpretations of the sub-fields are on subsequent lines. .LP .Ds 0 .TA 2i 2.3i 2.9i 3.6i 4.2i .ta 2i 2.3i 2.9i 3.6i 4.2i .R \fBAttribute Name Length Type\fP .sp 1 display_update 4 INT16 visual_state 4 CARD8 0 Correct 1 Deferred 2 Simulated display_surface 4 CARD8 0 Empty 1 NotEmpty view_update 4 CARD8 0 NotPending 1 Pending defined_views 4+4n 4 n length 4n LISTofCARD16 wks_update 4 CARD8 0 NotPending 1 Pending req_NPC_subvolume 6*\fIfp\fP \fIfp\fP FLOAT min x \fIfp\fP FLOAT min y \fIfp\fP FLOAT min z \fIfp\fP FLOAT max x \fIfp\fP FLOAT max y \fIfp\fP FLOAT max z cur_NPC_subvolume 6*\fIfp\fP \fIfp\fP FLOAT min x \fIfp\fP FLOAT min y \fIfp\fP FLOAT min z \fIfp\fP FLOAT max x \fIfp\fP FLOAT max y \fIfp\fP FLOAT max z req_wks_viewpt 12+2*\fIfp\fP 2 INT16 min x 2 INT16 min y \fIfp\fP FLOAT min z 2 INT16 max x 2 INT16 max y \fIfp\fP FLOAT max z 1 CARD8 use drawable 0 False 1 True 3 unused cur_wks_viewpt 12+2*\fIfp\fP 2 INT16 min x 2 INT16 min y \fIfp\fP FLOAT min z 2 INT16 max x 2 INT16 max y \fIfp\fP FLOAT max z 1 CARD8 use drawable 0 False 1 True 3 unused HLHSR_update 4 CARD8 0 NotPending 1 Pending req_HLHSR_mode 4 INT16 cur_HLHSR_mode 4 INT16 drawable_id 4 CARD32 marker_bundle 4 CARD32 text_bundle 4 CARD32 line_bundle 4 CARD32 interior_bundle 4 CARD32 edge_bundle 4 CARD32 color_table 4 CARD32 depth_cue_table 4 CARD32 light_table 4 CARD32 color_approx_table 4 CARD32 pattern_table 4 CARD32 text_font_table 4 CARD32 highlight_inclusion 4 CARD32 highlight_exclusion 4 CARD32 invisibility_inclusion 4 CARD32 invisibility_exclusion 4 CARD32 posted_structs 4+(4+\fIfp\fP)*n 4 n length of list (4+\fIfp\fP)*n LISTofSTRUCTURE_INFO num_priorities 4 CARD32 buffer_update 4 CARD8 0 NotPending 1 Pending req_buffer_mode 4 CARD16 0 Single 1 Double cur_buffer_mode 4 CARD16 0 Single 1 Double .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetDynamics 1 CARD8 opcode (X11 assigned) 1 63 PEX opcode 2 2 request length 4 CARD32 drawable ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 1 view rep 1 marker bundle 1 text bundle 1 line bundle 1 interior bundle 1 edge bundle 1 color table 1 pattern table 1 workstation transform 1 highlight filter 1 invisibility filter 1 HLHSR mode 1 structure modify 1 post structure 1 unpost structure 1 delete structure 1 reference modify 1 buffer modify 1 light table 1 depth cue table 1 color approx table 3 unused .De .LP The following constants are used for the reply fields above: .LP .Ds 0 .TA .5i 1i .ta .5i 1i .R 0 IMM 1 IRG 2 CBS .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetViewRep 1 CARD8 opcode (X11 assigned) 1 64 PEX opcode 2 3 request length 2 INT16 floating point format 2 CARD16 view index 4 CARD32 PHIGS workstation ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 4+76*\fIfp\fP reply length 2 view update 0 NotPending 1 Pending 22 unused 2 CARD16 requested view index 2 unused 2 requested clip flags #x0001 clip_xy #x0002 clip_back #x0004 clip_front 2 unused \fIfp\fP FLOAT requested clip limits min x \fIfp\fP FLOAT requested clip limits min y \fIfp\fP FLOAT requested clip limits min z \fIfp\fP FLOAT requested clip limits max x \fIfp\fP FLOAT requested clip limits max y \fIfp\fP FLOAT requested clip limits max z 16*\fIfp\fP FLOAT[4][4] requested orientation 16*\fIfp\fP FLOAT[4][4] requested mapping 2 CARD16 current view index 2 unused 2 current clip flags #x0001 clip_xy #x0002 clip_back #x0004 clip_front 2 unused \fIfp\fP FLOAT current clip limits min x \fIfp\fP FLOAT current clip limits min y \fIfp\fP FLOAT current clip limits min z \fIfp\fP FLOAT current clip limits max x \fIfp\fP FLOAT current clip limits max y \fIfp\fP FLOAT current clip limits max z 16*\fIfp\fP FLOAT[4][4] current orientation 16*\fIfp\fP FLOAT[4][4] current mapping .De .AC "PHIGS Workstation Manipulation" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXRedrawAllStructures 1 CARD8 opcode (X11 assigned) 1 65 PEX opcode 2 2 request length 4 CARD32 PHIGS workstation ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXUpdateWorkstation 1 CARD8 opcode (X11 assigned) 1 66 PEX opcode 2 2 request length 4 CARD32 PHIGS workstation ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXRedrawClipRegion 1 CARD8 opcode (X11 assigned) 1 67 PEX opcode 2 3+2n request length 4 CARD32 PHIGS workstation ID 4 n number of device rectangles 8n LISTofDEVICE_RECT clip list .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXExecuteDeferredActions 1 CARD8 opcode (X11 assigned) 1 68 PEX opcode 2 2 request length 4 CARD32 PHIGS workstation ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetViewPriority 1 CARD8 opcode (X11 assigned) 1 69 PEX opcode 2 4 request length 4 CARD32 PHIGS workstation ID 2 CARD16 index1 2 CARD16 index2 2 priority 0 Higher 1 Lower 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetDisplayUpdateMode 1 CARD8 opcode (X11 assigned) 1 70 PEX opcode 2 3 request length 4 CARD32 PHIGS workstation ID 2 INT16 display update 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXMapDCtoWC 1 CARD8 opcode (X11 assigned) 1 71 PEX opcode 2 4+(4+\fIfp\fP)*n/4 request length 2 INT16 floating point format 2 unused 4 CARD32 PHIGS workstation ID 4 n number of coordinates (4+\fIfp\fP)*n LISTofDEVICE_COORD DC points .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 3*\fIfp\fP*n/4 reply length 2 CARD16 view index 2 unused 4 n number of coordinates being returned 16 unused 3*\fIfp\fP*n LISTofCOORD_3D WC points .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXMapWCtoDC 1 CARD8 opcode (X11 assigned) 1 72 PEX opcode 2 4+3*\fIfp\fP*n/4 request length 2 INT16 floating point format 2 CARD16 view index 4 CARD32 PHIGS workstation ID 4 n number of coordinates 3*\fIfp\fP*n LISTofCOORD_3D WC points .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 (4+\fIfp\fP)*n/4 reply length 4 unused 4 n number of coordinates being returned 16 unused (4+\fIfp\fP)*n LISTofDEVICE_COORD DC points .De .AC "PHIGS Workstation Update" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetViewRep 1 CARD8 opcode (X11 assigned) 1 73 PEX opcode 2 5+38*\fIfp\fP/4 request length 2 INT16 floating point format 2 unused 4 CARD32 PHIGS workstation ID 2 CARD16 view rep index 2 unused 2 view rep clip flags #x0001 clip_xy #x0002 clip_back #x0004 clip_front 2 unused \fIfp\fP FLOAT view rep clip limits min x \fIfp\fP FLOAT view rep clip limits min y \fIfp\fP FLOAT view rep clip limits min z \fIfp\fP FLOAT view rep clip limits max x \fIfp\fP FLOAT view rep clip limits max y \fIfp\fP FLOAT view rep clip limits max z 16*\fIfp\fP FLOAT[4][4] view rep orientation 16*\fIfp\fP FLOAT[4][4] view rep mapping .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetWKSWindow 1 CARD8 opcode (X11 assigned) 1 74 PEX opcode 2 3+6*\fIfp\fP/4 request length 2 INT16 floating point format 2 unused 4 CARD32 PHIGS workstation ID \fIfp\fP FLOAT NPC subvolume min x \fIfp\fP FLOAT NPC subvolume min y \fIfp\fP FLOAT NPC subvolume min z \fIfp\fP FLOAT NPC subvolume max x \fIfp\fP FLOAT NPC subvolume max y \fIfp\fP FLOAT NPC subvolume max z .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetWKSViewport 1 CARD8 opcode (X11 assigned) 1 75 PEX opcode 2 6+2*\fIfp\fP/4 request length 2 INT16 floating point format 2 unused 4 CARD32 PHIGS workstation ID 2 INT16 viewport min x 2 INT16 viewport min y \fIfp\fP FLOAT viewport min z 2 INT16 viewport max x 2 INT16 viewport max y \fIfp\fP FLOAT viewport max z 1 viewport use drawable 0 False 1 True 3 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetHLHSRMode 1 CARD8 opcode (X11 assigned) 1 76 PEX opcode 2 3 request length 4 CARD32 PHIGS workstation ID 2 INT16 mode 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetWKSBufferMode 1 CARD8 opcode (X11 assigned) 1 77 PEX opcode 2 3 request length 4 CARD32 PHIGS workstation ID 2 buffer mode 0 Single 1 Double 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .AC "Posting/Unposting Structures" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXPostStructure 1 CARD8 opcode (X11 assigned) 1 78 PEX opcode 2 4+\fIfp\fP/4 request length 2 INT16 floating point format 2 unused 4 CARD32 PHIGS workstation ID 4 CARD32 structure ID \fIfp\fP FLOAT priority .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXUnpostStructure 1 CARD8 opcode (X11 assigned) 1 79 PEX opcode 2 3 request length 4 CARD32 PHIGS workstation ID 4 CARD32 structure ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXUnpostAllStructures 1 CARD8 opcode (X11 assigned) 1 80 PEX opcode 2 2 request length 4 CARD32 PHIGS workstation ID .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetWKSPostings 1 CARD8 opcode (X11 assigned) 1 81 PEX opcode 2 2 request length 4 CARD32 structure ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 24 unused 4n LISTofPHIGS_WKS_ID PHIGS workstation IDs (length implicit) .De .bp .AC "Workstation Picking" 1 .LP .Ds 0 .TA .2i 1i .ta .2i 1i P_BITMASK .sp 1 #x0001 pick_status #x0002 pick_path #x0004 pick_path_order #x0008 pick_inclusion #x0010 pick_exclusion #x0020 pick_data_rec #x0040 prompt_echo_type #x0080 echo_volume #x0100 echo_switch .De .LP Note that entries in the list are all padded to a multiple of 4 bytes. If values appear which could be encoded in less space, it is assumed that they will be placed in the least significant bits of the word. If a component has sub-fields, the sizes, types and interpretations of the sub-fields are on subsequent lines. .LP .Ds 0 .TA 2i 2.3i 2.9i 3.6i 4.2i .ta 2i 2.3i 2.9i 3.6i 4.2i .R \fBAttribute Name Length Type\fP pick_status 4 CARD16 0 NoPick 1 Ok pick_path 4+12n 4 n number of pick element references 12n LISTofPICK_ELEMENT_REF pick_path_order 4 CARD16 0 TopFirst 1 BottomFirst pick_inclusion 4 CARD32 pick_exclusion 4 CARD32 pick_data_rec 4+n+p 4 n length n LISTofCARD8 p unused, p=pad(n) prompt_echo_type 4 INT16 echo_volume 12+2*\fIfp\fP 2 INT16 min x 2 INT16 min y \fIfp\fP FLOAT min z 2 INT16 max x 2 INT16 max y \fIfp\fP FLOAT max z 1 CARD8 use drawable 0 False 1 True 3 unused echo_switch 4 CARD16 0 NoEcho 1 Echo .De .AC "Pick Device Descriptors" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetPickDevice 1 CARD8 opcode (X11 assigned) 1 82 PEX opcode 2 4 request length 2 INT16 floating point format 2 INT16 device type 4 CARD32 PHIGS workstation ID 4 P_BITMASK item mask .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n/4 reply length 24 unused n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXChangePickDevice 1 CARD8 opcode (X11 assigned) 1 83 PEX opcode 2 5+n/4 request length 2 CARD16 floating point format 2 unused 4 CARD32 PHIGS workstation ID 2 INT16 device type 2 unused 4 P_BITMASK item mask n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .AC "Pick Measure" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCreatePickMeasure 1 CARD8 opcode (X11 assigned) 1 84 PEX opcode 2 4 request length 4 CARD32 PHIGS workstation ID 4 CARD32 pick measure ID 2 INT16 device type 2 unused .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXFreePickMeasure 1 CARD8 opcode (X11 assigned) 1 85 PEX opcode 2 2 request length 4 CARD32 pick measure ID .De .LP .Ds 0 .TA .2i 1i .ta .2i 1i PM_BITMASK .sp 1 #x0001 pick_status #x0002 picked_prim .De .LP Note that entries in the list are all padded to a multiple of 4 bytes. If values appear which could be encoded in less space, it is assumed that they will be placed in the least significant bits of the word. If a component has sub-fields, the sizes, types and interpretations of the sub-fields are on subsequent lines. .LP .Ds 0 .TA 2i 2.3i 2.9i 3.6i 4.2i .ta 2i 2.3i 2.9i 3.6i 4.2i .R \fBAttribute Name Length Type\fP .sp 1 pick_status 4 CARD16 0 NoPick 1 Ok picked_prim 4+12n 4 n number of pick element references 12n LISTofPICK_ELEMENT_REF .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXGetPickMeasure 1 CARD8 opcode (X11 assigned) 1 86 PEX opcode 2 3 request length 4 CARD32 pick measure ID 4 PM_BITMASK item mask .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 n/4 reply length 24 unused n LISTofVALUE item list (let n be the size of the list, in bytes.) .De .AC "Pick Operations" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXUpdatePickMeasure 1 CARD8 opcode (X11 assigned) 1 87 PEX opcode 2 3+(n+p)/4 request length 4 CARD32 pick measure ID 4 n length of list n LISTofCARD8 input record p unused, p=pad(n) .De .sp 1 The input data records for the registered pick devices are: .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Pick Device 1, DC_HitBox: 2 INT16 pick position x 2 INT16 pick position y \fIfp\fP FLOAT pick distance .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R Pick Device 2, NPC_HitVolume: \fIfp\fP FLOAT min x \fIfp\fP FLOAT min y \fIfp\fP FLOAT min z \fIfp\fP FLOAT max x \fIfp\fP FLOAT max y \fIfp\fP FLOAT max z .De .bp .AC "PEX Fonts" 1 .LP .AC "PEX Font Resource Management" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXOpenFont 1 CARD8 opcode (X11 assigned) 1 88 PEX opcode 2 3+(n+p)/4 request length 4 CARD32 font ID 4 n length of name n LISTofCARD8 name p unused, p=pad(n) .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXCloseFont 1 CARD8 opcode (X11 assigned) 1 89 PEX opcode 2 2 length 4 CARD32 font ID .De .AC "PEX Font Inquiry" 2 .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXQueryFont 1 CARD8 opcode (X11 assigned) 1 90 PEX opcode 2 2 request length 4 CARD32 font ID .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 f/4 reply length 4 f length of FONTINFO 20 unused f FONTINFO font info .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXListFonts 1 CARD8 opcode (X11 assigned) 1 91 PEX opcode 2 2+(n+p)/4 request length 2 CARD16 max names 2 n number of bytes in pattern n LISTofCARD8 pattern p unused, p=pad(n) .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 r/4 reply length 4 CARD32 number of STRINGs in list 20 unused r LISTofSTRING font names .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXListFontsWithInfo 1 CARD8 opcode (X11 assigned) 1 92 PEX opcode 2 3+(n+p)/4 request length 2 unused 2 CARD16 max names 2 n number of characters in pattern 2 unused n LISTofCARD8 pattern p unused, p=pad(n) .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 1+(r+f)/4 reply length 4 CARD32 number of STRINGs in list 20 unused r LISTofSTRING font names 4 CARD32 number of FONTINFO in list f LISTofFONTINFO fonts .De .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXQueryTextExtents 1 CARD8 opcode (X11 assigned) 1 93 PEX opcode 2 6+(3*\fIfp\fP+q+p)/4 request length 2 INT16 floating point format 2 path 0 PathRight 1 PathLeft 2 PathUp 3 PathDown 2 CARD16 font group table index 2 unused 4 CARD32 resource ID (renderer, WKS or TextFont table) \fIfp\fP FLOAT expansion \fIfp\fP FLOAT spacing \fIfp\fP FLOAT height 2 alignment vertical 0 ValignNormal 1 ValignTop 2 ValignCap 3 ValignHalf 4 ValignBase 5 ValignBottom 2 alignment horizontal 0 HalignNormal 1 HalignLeft 2 HalignCenter 3 HalignRight 4 CARD32 number of strings q LISTofLISTofMONO_ENCODING strings .De .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R => 1 1 Reply 1 unused 2 CARD16 sequence number 4 6n reply length 24 unused 6*\fIfp\fP*n LISTofEXTENT_INFO extents (length implicit) .De .bp .AP "Appendix: Registered PEX Escapes" .SH \s+3Appendix: Registered PEX Escapes\s-3 .LP .RU .LP .Ds 0 .TA .2i 1i 2i 3.1i .ta .2i 1i 2i 3.1i .R .PN PEXSetEchoColor 1 CARD8 opcode (X11 assigned) 1 95 PEX opcode (see PEXEscape) 2 5+n request length 4 1 escape ID 2 INT16 floating point format 2 unused 4 CARD32 renderer ID 4+4n COLOR_SPECIFIER color .De