Updated the schema. Added comments explaining some of the non-obvious

attributes.  Modified a couple handcode functions to use the count_scale
attribute instead.
This commit is contained in:
Ian Romanick 2004-12-02 00:01:12 +00:00
parent 00d153eb72
commit ba807fbe29

View file

@ -21,10 +21,14 @@
<!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
@ -32,6 +36,51 @@
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. -->
@ -6579,13 +6628,9 @@
<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">
@ -6877,9 +6922,9 @@
<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="?">