1Name 2 3 NV_vertex_array_range2 4 5Name Strings 6 7 GL_NV_vertex_array_range2 8 9Contact 10 11 Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com) 12 13Notice 14 15 Copyright NVIDIA Corporation, 2001. 16 17IP Status 18 19 NVIDIA Proprietary. 20 21Status 22 23 Complete 24 25Version 26 27 NVIDIA Date: April 13, 2001 28 Version: 2 29 30Number 31 32 232 33 34Dependencies 35 36 Assumes support for the NV_vertex_array_range extension (version 1.1). 37 38 Support for NV_fence is recommended but not required. 39 40Overview 41 42 Enabling and disabling the vertex array range is specified by the 43 original NV_vertex_array_range extension specification to flush the 44 vertex array range implicitly. In retrospect, this semantic is 45 extremely misconceived and creates terrible performance problems 46 for any application that wishes to mix conventional vertex arrays 47 with vertex arrange range-enabled vertex arrays. 48 49 This extension provides a new token for enabling/disabling the 50 vertex array range that does NOT perform an implicit vertex array 51 range flush when the enable/disable is performed. 52 53Issues 54 55 Should this extension expose a new enable that enables/disables the 56 vertex array range enable/disable semantic of performing an implicit 57 'vertex array range flush' when GL_VERTEX_ARRAY_RANGE_NV is enabled 58 or disabled, OR should it add a new enable token that acts identically 59 to GL_VERTEX_ARRAY_RANGE_NV without the implicit flush? 60 61 RESOLUTION: The second option. Enabling/disabling 62 GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV acts identically to 63 enabling/disabling GL_VERTEX_ARRAY_RANGE_NV, just without the 64 implicit flush. 65 66 Should GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV work with glIsEnabled? 67 68 RESOLUTION: NO. There is still just a single state boolean to 69 query. 70 71New Procedures and Functions 72 73 None 74 75New Tokens 76 77 Accepted by the <cap> parameter of EnableClientState, 78 DisableClientState: 79 80 VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 81 82Additions to Chapter 2 of the OpenGL 1.1 Specification (OpenGL Operation) 83 84 Within the discussion of vertex arrays (Section 2.8) amended by 85 the NV_vertex_array_range extension specification, change the 86 discussion of enabling the vertex array range to: 87 88 The vertex array range is enabled or disabled by calling 89 EnableClientState or DisableClientState with the symbolic 90 constant VERTEX_ARRAY_RANGE_NV. 91 92 The vertex array range is also enabled or disabled by calling 93 EnableClientState or DisableClientState with the symbolic constant 94 VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV. This second means to enable 95 and disable the vertex array range does not perform an implicit 96 vertex array range flush as described subsequently." 97 98 Within the discussion of vertex arrays (Section 2.8) amended by the 99 NV_vertex_array_range extension specification, change the discussion 100 of implicit vertex array range flushes to: 101 102 "A 'vertex array range flush' occurs when one of the following 103 operations occur: 104 105 o Finish returns. 106 107 o FlushVertexArrayRangeNV returns. 108 109 o VertexArrayRangeNV returns. 110 111 o DisableClientState of VERTEX_ARRAY_RANGE_NV returns. 112 113 o EnableClientState of VERTEX_ARRAY_RANGE_NV returns. 114 115 o Another OpenGL context is made current. 116 117 However, use of VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV with 118 DisableClientState or EnableClientState does NOT perform an implicit 119 vertex array range flush." 120 121Additions to Chapter 5 of the OpenGL 1.1 Specification (Special Functions) 122 123 None 124 125Additions to the WGL interface: 126 127 None 128 129Additions to the GLX Specification 130 131 None 132 133GLX Protocol 134 135 None 136 137Errors 138 139 No new errors. 140 141New State 142 143 None 144 145New Implementation Dependent State 146 147 None 148 149Revision History 150 151 4/13/2001 - token value for GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 152 should be 0x8533 (was incorrectly typed as 0x8503) 153 154