blob: 70976fa23043e7a9eae53e194963aaddfcc4bb21 [file] [log] [blame]
Name
NV_vertex_array_range2
Name Strings
GL_NV_vertex_array_range2
Contact
Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com)
Notice
Copyright NVIDIA Corporation, 2001.
IP Status
NVIDIA Proprietary.
Status
Complete
Version
NVIDIA Date: April 13, 2001
Version: 2
Number
232
Dependencies
Assumes support for the NV_vertex_array_range extension (version 1.1).
Support for NV_fence is recommended but not required.
Overview
Enabling and disabling the vertex array range is specified by the
original NV_vertex_array_range extension specification to flush the
vertex array range implicitly. In retrospect, this semantic is
extremely misconceived and creates terrible performance problems
for any application that wishes to mix conventional vertex arrays
with vertex arrange range-enabled vertex arrays.
This extension provides a new token for enabling/disabling the
vertex array range that does NOT perform an implicit vertex array
range flush when the enable/disable is performed.
Issues
Should this extension expose a new enable that enables/disables the
vertex array range enable/disable semantic of performing an implicit
'vertex array range flush' when GL_VERTEX_ARRAY_RANGE_NV is enabled
or disabled, OR should it add a new enable token that acts identically
to GL_VERTEX_ARRAY_RANGE_NV without the implicit flush?
RESOLUTION: The second option. Enabling/disabling
GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV acts identically to
enabling/disabling GL_VERTEX_ARRAY_RANGE_NV, just without the
implicit flush.
Should GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV work with glIsEnabled?
RESOLUTION: NO. There is still just a single state boolean to
query.
New Procedures and Functions
None
New Tokens
Accepted by the <cap> parameter of EnableClientState,
DisableClientState:
VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
Additions to Chapter 2 of the OpenGL 1.1 Specification (OpenGL Operation)
Within the discussion of vertex arrays (Section 2.8) amended by
the NV_vertex_array_range extension specification, change the
discussion of enabling the vertex array range to:
The vertex array range is enabled or disabled by calling
EnableClientState or DisableClientState with the symbolic
constant VERTEX_ARRAY_RANGE_NV.
The vertex array range is also enabled or disabled by calling
EnableClientState or DisableClientState with the symbolic constant
VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV. This second means to enable
and disable the vertex array range does not perform an implicit
vertex array range flush as described subsequently."
Within the discussion of vertex arrays (Section 2.8) amended by the
NV_vertex_array_range extension specification, change the discussion
of implicit vertex array range flushes to:
"A 'vertex array range flush' occurs when one of the following
operations occur:
o Finish returns.
o FlushVertexArrayRangeNV returns.
o VertexArrayRangeNV returns.
o DisableClientState of VERTEX_ARRAY_RANGE_NV returns.
o EnableClientState of VERTEX_ARRAY_RANGE_NV returns.
o Another OpenGL context is made current.
However, use of VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV with
DisableClientState or EnableClientState does NOT perform an implicit
vertex array range flush."
Additions to Chapter 5 of the OpenGL 1.1 Specification (Special Functions)
None
Additions to the WGL interface:
None
Additions to the GLX Specification
None
GLX Protocol
None
Errors
No new errors.
New State
None
New Implementation Dependent State
None
Revision History
4/13/2001 - token value for GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
should be 0x8533 (was incorrectly typed as 0x8503)