15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_vertex_array_range2 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_vertex_array_range2 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNotice 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Copyright NVIDIA Corporation, 2001. 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciIP Status 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci NVIDIA Proprietary. 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciStatus 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci Complete 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ciVersion 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ci NVIDIA Date: April 13, 2001 285bd8deadSopenharmony_ci Version: 2 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciNumber 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci 232 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ciDependencies 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci Assumes support for the NV_vertex_array_range extension (version 1.1). 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci Support for NV_fence is recommended but not required. 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciOverview 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci Enabling and disabling the vertex array range is specified by the 435bd8deadSopenharmony_ci original NV_vertex_array_range extension specification to flush the 445bd8deadSopenharmony_ci vertex array range implicitly. In retrospect, this semantic is 455bd8deadSopenharmony_ci extremely misconceived and creates terrible performance problems 465bd8deadSopenharmony_ci for any application that wishes to mix conventional vertex arrays 475bd8deadSopenharmony_ci with vertex arrange range-enabled vertex arrays. 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ci This extension provides a new token for enabling/disabling the 505bd8deadSopenharmony_ci vertex array range that does NOT perform an implicit vertex array 515bd8deadSopenharmony_ci range flush when the enable/disable is performed. 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ciIssues 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci Should this extension expose a new enable that enables/disables the 565bd8deadSopenharmony_ci vertex array range enable/disable semantic of performing an implicit 575bd8deadSopenharmony_ci 'vertex array range flush' when GL_VERTEX_ARRAY_RANGE_NV is enabled 585bd8deadSopenharmony_ci or disabled, OR should it add a new enable token that acts identically 595bd8deadSopenharmony_ci to GL_VERTEX_ARRAY_RANGE_NV without the implicit flush? 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci RESOLUTION: The second option. Enabling/disabling 625bd8deadSopenharmony_ci GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV acts identically to 635bd8deadSopenharmony_ci enabling/disabling GL_VERTEX_ARRAY_RANGE_NV, just without the 645bd8deadSopenharmony_ci implicit flush. 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ci Should GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV work with glIsEnabled? 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci RESOLUTION: NO. There is still just a single state boolean to 695bd8deadSopenharmony_ci query. 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ciNew Procedures and Functions 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci None 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ciNew Tokens 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci Accepted by the <cap> parameter of EnableClientState, 785bd8deadSopenharmony_ci DisableClientState: 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.1 Specification (OpenGL Operation) 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci Within the discussion of vertex arrays (Section 2.8) amended by 855bd8deadSopenharmony_ci the NV_vertex_array_range extension specification, change the 865bd8deadSopenharmony_ci discussion of enabling the vertex array range to: 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci The vertex array range is enabled or disabled by calling 895bd8deadSopenharmony_ci EnableClientState or DisableClientState with the symbolic 905bd8deadSopenharmony_ci constant VERTEX_ARRAY_RANGE_NV. 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci The vertex array range is also enabled or disabled by calling 935bd8deadSopenharmony_ci EnableClientState or DisableClientState with the symbolic constant 945bd8deadSopenharmony_ci VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV. This second means to enable 955bd8deadSopenharmony_ci and disable the vertex array range does not perform an implicit 965bd8deadSopenharmony_ci vertex array range flush as described subsequently." 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci Within the discussion of vertex arrays (Section 2.8) amended by the 995bd8deadSopenharmony_ci NV_vertex_array_range extension specification, change the discussion 1005bd8deadSopenharmony_ci of implicit vertex array range flushes to: 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci "A 'vertex array range flush' occurs when one of the following 1035bd8deadSopenharmony_ci operations occur: 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci o Finish returns. 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ci o FlushVertexArrayRangeNV returns. 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci o VertexArrayRangeNV returns. 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci o DisableClientState of VERTEX_ARRAY_RANGE_NV returns. 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci o EnableClientState of VERTEX_ARRAY_RANGE_NV returns. 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci o Another OpenGL context is made current. 1165bd8deadSopenharmony_ci 1175bd8deadSopenharmony_ci However, use of VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV with 1185bd8deadSopenharmony_ci DisableClientState or EnableClientState does NOT perform an implicit 1195bd8deadSopenharmony_ci vertex array range flush." 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.1 Specification (Special Functions) 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci None 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ciAdditions to the WGL interface: 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ci None 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ciAdditions to the GLX Specification 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ci None 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ciGLX Protocol 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci None 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ciErrors 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci No new errors. 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ciNew State 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci None 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ciNew Implementation Dependent State 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci None 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ciRevision History 1505bd8deadSopenharmony_ci 1515bd8deadSopenharmony_ci 4/13/2001 - token value for GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 1525bd8deadSopenharmony_ci should be 0x8533 (was incorrectly typed as 0x8503) 1535bd8deadSopenharmony_ci 154