<!ATTLIST param name CDATA #REQUIRED
type CDATA #REQUIRED
count CDATA #IMPLIED
+ counter CDATA #IMPLIED
+ count_scale CDATA #IMPLIED
+ output CDATA #IMPLIED
variable_param CDATA #IMPLIED>
<!ATTLIST return type CDATA #REQUIRED>
<!ATTLIST glx rop CDATA #IMPLIED
sop CDATA #IMPLIED
+ vendorpriv CDATA #IMPLIED
large CDATA #IMPLIED
doubles_in_order CDATA #IMPLIED
always_array CDATA #IMPLIED
ignore CDATA #IMPLIED>
]>
+<!--
+The various attributes for param and glx have the meanings listed below.
+When adding new functions, please annote them correct. In most cases this
+will just mean adding a '<glx ignore="true"/>' tag.
+
+param:
+ name - name of the parameter
+ type - fully qualified type (e.g., with "const", etc.)
+ count - for counted arrays (e.g., the 'lists' parameter to glCallLists),
+ the parameter or literal that represents the count. For functions
+ like glVertex3fv it will be a litteral, for others it will be one of
+ the parameters.
+ counter - this parameter is a counter that will be referenced by the
+ 'count' attribute in another parameter.
+ count_scale - literal value scale factor for the 'count' attribute.
+ See ProgramParameters4dvNV for an example.
+ output - this parameter is used to store the output of the function.
+ variable_param - name of parameter used to determine the number of
+ elements referenced by this parameter. This should be the name of a
+ single enum parameter. Most of the gl*Parameter[if]v functions use
+ this. Additionally, the enums that can be passed should be properly
+ annotated.
+
+glx:
+ rop - Opcode value for "render" commands
+ sop - Opcode value for "single" commands
+ vendorpriv - Opcode value for vendor private (or vendor private with
+ reply) commands
+ large - set to "true" of the render command can use RenderLarge protocol.
+ doubles_in_order - older commands always put GLdouble data at the
+ start of the render packet. Newer commands (e.g.,
+ ProgramEnvParameter4dvARB) put the in the order that they appear
+ in the parameter list.
+ always_array - some single commands take reply data as an array or as
+ return value data (e.g., glGetLightfv). Other single commands take
+ reply data only as an array (e.g., glGetClipPlane).
+ handcode - some functions are just too complicated to generate
+ (e.g., glTexImage2D) or operate only on client-side data (e.g.,
+ glVertexPointer) and must be handcoded.
+ ignore - some functions have an entry in the dispatch table, but aren't
+ suitable for protocol implementation (e.g., glLockArraysEXT). This
+ also applies to functions that don't have any GLX protocol specified
+ (e.g., glGetFogFuncSGIS).
+-->
+
<OpenGLAPI>
<!-- Core versions sorted by version number. -->
<category name="GL_SGIS_sharpen_texture" number="22">
<function name="SharpenTexFuncSGIS" offset="444">
<param name="target" type="GLenum"/>
- <param name="n" type="GLsizei"/>
- <param name="points" type="const GLfloat *"/>
-
- <!-- This is hand coded because the number of array elements
- pointed to by 'points' is 2*n.
- -->
- <glx rop="2052" handcode="true" ignore="true"/>
+ <param name="n" type="GLsizei" counter="true"/>
+ <param name="points" type="const GLfloat *" counter="n" count_scale="2"/>
+ <glx rop="2052" ignore="true"/>
</function>
<function name="GetSharpenTexFuncSGIS" offset="445">
<category name="GL_SGIS_fog_function" number="64">
<function name="FogFuncSGIS" offset="?">
- <param name="n" type="GLsizei"/>
- <param name="points" type="const GLfloat *"/>
- <glx rop="2067" handcode="true"/>
+ <param name="n" type="GLsizei" counter="true"/>
+ <param name="points" type="const GLfloat *" counter="n" count_scale="2"/>
+ <glx rop="2067" ignore="true"/>
</function>
<function name="GetFogFuncSGIS" offset="?">