Adaptive buffering of computer graphics vertex commands
This invention relates to the field of computer graphics, and more particularly to a technique for speeding rendering performance by adaptively buffering vertex commands issued by application software. A method of buffering graphics vertex commands adaptively. A minimally-formatted vertex values buf...
Gespeichert in:
Hauptverfasser: | , , , |
---|---|
Format: | Patent |
Sprache: | eng |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | This invention relates to the field of computer graphics, and more particularly to a technique for speeding rendering performance by adaptively buffering vertex commands issued by application software.
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. |
---|