A method of buffering graphics vertex commands adaptively. A
minimally-formatted vertex values buffer is created. As vertex commands
are received from application software, attribute values are stored in an
attribute values buffer until a vertex coordinate command is received.
Upon receipt of a vertex coordinate command, attribute values are copied
from the attribute values buffer into the vertex values buffer. Whenever
application software issues a vertex attribute command corresponding to an
attribute type that is not currently reflected in the vertex values buffer
format, the vertex values buffer is automatically reformatted to include
the new attribute type. Thus, the vertex values buffer automatically
adapts itself to the behavior of the application. Multiple primitives are
buffered between flushes. First-call and subsequent-call versions of code
are provided for vertex commands. At initialization, a dispatch table is
populated with pointers to the first-call versions. Thereafter, the
dispatch table entries are manipulated by the commands themselves.
Multiple subsequent-calls versions are provided for a single vertex
coordinate command, each of the different subsequent-calls versions
optimized for a different vertex values buffer format. The first-call
version of the command determines which of the subsequent-calls versions
is optimal for the current vertex values buffer format, and places a
pointer to the optimized version in the dispatch table. Thereafter, the
copying of values from the attribute values buffer into the vertex values
buffer is done by the subsequent-calls version in a manner that
corresponds exactly to the current vertex values buffer format, and
without making any decisions.
Un método de proteger cima de los gráficos ordena adaptante. Se crea un almacenador intermediario mi'nimo-ajustado a formato de los valores de la cima. Mientras que los comandos de la cima se reciben de software de uso, los valores de la cualidad se almacenan en un almacenador intermediario de los valores de la cualidad hasta que se recibe un comando del coordenada de la cima. Sobre recibo de un comando del coordenada de la cima, los valores de la cualidad se copian del almacenador intermediario de los valores de la cualidad en el almacenador intermediario de los valores de la cima. Siempre que el software de uso publique un comando de la cualidad de la cima que corresponde a un tipo de la cualidad que no se refleje actualmente en la cima valora el formato del almacenador intermediario, los valores de la cima que el almacenador intermediario se cambia formato automáticamente para incluir el nuevo tipo de la cualidad. Así, el almacenador intermediario de los valores de la cima se adapta automáticamente al comportamiento del uso. Los primitivos múltiples se protegen entre los rubores. Primero-llame y subsecuente-llame las versiones del código se preven comandos de la cima. En la inicialización, una tabla del envío se puebla con los indicadores a primero-llama versiones. Después de eso, las entradas de la tabla del envío son manipuladas por los comandos ellos mismos. Múltiple subsecuente-llama versiones se preven un solo comando del coordenada de la cima, cada uno del diferente subsecuente-llama versiones optimizadas para un diverso formato del almacenador intermediario de los valores de la cima. Primero-llame la versión del comando se determina cuál de subsecuente-llama versiones es óptimo para el formato actual del almacenador intermediario de los valores de la cima, y coloca un indicador a la versión optimizada en la tabla del envío. Después de eso, el copiado de valores del almacenador intermediario de los valores de la cualidad en los valores de la cima que el almacenador intermediario es hecho por subsecuente-llama la versión de una manera que corresponda exactamente al formato actual del almacenador intermediario de los valores de la cima, y sin tomar ningunas decisiones.