1XXX - Not complete yet!!! 2XXX - Obsolete; implemented as part of GL_SGIX_igloo_interface 3 We still need to talk to myoung about error behavior. 4 5Name 6 7 IGLOO_swap_triangle_strip_vertex_pointerXXX 8 9 10Name Strings 11 12 GL_IGLOO_swap_triangle_strip_vertex_pointerXXX 13 14 No name should be returned by glGetString, glXQueryExtensionsString, or gluGetString . 15 The name string here is used solely in the registry. 16 17Version 18 19 $Date: 1999/04/03 08:40:51 $ $Revision: 1.3 $ 20 21Number 22 23 None 24 25 Igloo extensions should be compatible with *ALL* other extensions. 26 (i.e. igloo extensions must document their interactions with subsequent 27 extensions preceding it, so there is no number). 28 29Dependencies 30 31 None 32 33Overview 34 35 This extensions allows a single triangle fan to be generated within 36 a glBegin(GL_TRIANGLE_STRIP) . . .glEnd(); 37 38New Procedures and Functions 39 40 void SwapTriangleStripVertexPointerXXX(void); 41 42New Tokens 43 44 None 45 46Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 47 48 Note: It is not explicitely stated but glGetError returns INVALID OPERATION 49 when this is called between glBegin and glEnd if this extension is not supported. 50 51 Section 2.6.3 -- GL Commands within Begin/End 52 The only GL command that are allowed within any Begin/End Pairs are the 53 commands for specifying vertex coordinates, vertex color, normal coordinates, 54 and texture coordinates (Vertex, Color, Index, Normal, TexCoord), 55 EvalCoord and EvalPoint commands (see section 5.1) 56 commands for specifying lighting material parameters 57 (Material commnads: see section 2.12.2) display list invocation commands 58 (callList and CallLists: see section 5.4), *SwapTriangleStripVertexPointerXXX* 59 (see section 2.7) and the EdgeFlag command. 60 61 Section 2.6.1 --- Begin and End Objects 62 Triangle strips. second paragraph 63 The state required to support triangle strips consists of a flag 64 indicating if the first triangle has been completed, two stored 65 processed vertices, (called vertex A and vertex B), and a one bit pointer 66 indicating which stored vertex will be replaced with the next vertex. 67 After a Begin(TRIANGLE_STRIP), the pointer is initialized to point to 68 vertex A. Each vertex set between a Begin/End pair toggles the pointer. 69 Therefore, the first vertex is stored as vertex A, the second stored 70 as vertex B, the third stored as vertex A, and so on. 71 ***SwapTriangleStripVertexPointerXXX 72 causes the pointer to point to the vertex it is not pointing to. Therefore 73 if the pointer points to vertex A then SwapTriangleStripVertexPointerXXX will 74 cause it to point to vertex B and vice-versa. *** Any vertex after the second one sent 75 forms a triangle from vertex A, vertex B, and the current vertex (in that order). 76 77 same section the following should be appended to the end. 78 SwapTriangleStripVertexPointerXXX has no effect unless it is called between 79 a Begin with the argument TRIANGLE_STRIP, and the corresponding call to End. 80 81Additions to Chapter 3 of the 1.0 Specification (Rasterization) 82 None 83 84Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 85and the Frame Buffer) 86 None 87 88Additions to Chapter 5 of the 1.0 Specification (Special Functions) 89 90 Currently Igloo doesn't use OpenGL display lists. But this command 91 should be display listable. So it is *NOT* included in the set of 92 commands which are *NOT* display listable. 93 94 The way this is spec'd this will *NOT* generate an extra feedback vertex, 95 or selection hit. So nothing is added here regarding feedback and selection. 96 HOWEVER, if this is implemented in the future in software it is 97 likely to be implemented by redundantly re-issuing the second 98 to the last vertex issued, and this *WILL* generate a couple of 99 feedback or selection vertices. 100 101 102Additions to Chapter 6 of the 1.0 Specification (State and State Requests) 103 104 None 105 106Additions to the GLX Specification 107 108GLX Protocol 109 110 This command does not need to be recognized by GLX. 111 IGLOO doesn't use indirect rendering. 112 113Dependencies on SGI_extension_name 114 115 None 116 117Errors 118 119 This command should be a no-op for other primitive types 120 (and outside of glBegin/glEnd.) However, this implies that 121 the Error state knows if you are within Begin/End. and 122 worse it means that it knows if you are generating a Triangle 123 Strip. I'm assuming that if it is possible to flag 124 an error it is also possible to ignore it. SO. . .there is 125 no error generated outside of glBegin(GL_TRIANGLE_STRIP) glEnd() 126 and so nothing is written into this section. 127 128 Blythe said that he'd talk to Myoung and make sure that this 129 is ok. 130 131 132 133New State 134 135* Description of all state values in table format. Note that client 136* state should have "client" listed in the Attrib column. 137 138 Initial 139 Get Value Get Command Type Value Attrib 140 --------- ----------- ---- ------- ------ 141None 142 143New Implementation Dependent State 144 145* Description of all implementation dependent state in table format. 146 147 Minimum 148 Get Value Get Command Type Value 149 --------- ----------- ---- ------- 150 151None 152 153