| XXX - Not complete yet!!! |
| XXX - Obsolete; implemented as part of GL_SGIX_igloo_interface |
| We still need to talk to myoung about error behavior. |
| |
| Name |
| |
| IGLOO_swap_triangle_strip_vertex_pointerXXX |
| |
| |
| Name Strings |
| |
| GL_IGLOO_swap_triangle_strip_vertex_pointerXXX |
| |
| No name should be returned by glGetString, glXQueryExtensionsString, or gluGetString . |
| The name string here is used solely in the registry. |
| |
| Version |
| |
| $Date: 1999/04/03 08:40:51 $ $Revision: 1.3 $ |
| |
| Number |
| |
| None |
| |
| Igloo extensions should be compatible with *ALL* other extensions. |
| (i.e. igloo extensions must document their interactions with subsequent |
| extensions preceding it, so there is no number). |
| |
| Dependencies |
| |
| None |
| |
| Overview |
| |
| This extensions allows a single triangle fan to be generated within |
| a glBegin(GL_TRIANGLE_STRIP) . . .glEnd(); |
| |
| New Procedures and Functions |
| |
| void SwapTriangleStripVertexPointerXXX(void); |
| |
| New Tokens |
| |
| None |
| |
| Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) |
| |
| Note: It is not explicitely stated but glGetError returns INVALID OPERATION |
| when this is called between glBegin and glEnd if this extension is not supported. |
| |
| Section 2.6.3 -- GL Commands within Begin/End |
| The only GL command that are allowed within any Begin/End Pairs are the |
| commands for specifying vertex coordinates, vertex color, normal coordinates, |
| and texture coordinates (Vertex, Color, Index, Normal, TexCoord), |
| EvalCoord and EvalPoint commands (see section 5.1) |
| commands for specifying lighting material parameters |
| (Material commnads: see section 2.12.2) display list invocation commands |
| (callList and CallLists: see section 5.4), *SwapTriangleStripVertexPointerXXX* |
| (see section 2.7) and the EdgeFlag command. |
| |
| Section 2.6.1 --- Begin and End Objects |
| Triangle strips. second paragraph |
| The state required to support triangle strips consists of a flag |
| indicating if the first triangle has been completed, two stored |
| processed vertices, (called vertex A and vertex B), and a one bit pointer |
| indicating which stored vertex will be replaced with the next vertex. |
| After a Begin(TRIANGLE_STRIP), the pointer is initialized to point to |
| vertex A. Each vertex set between a Begin/End pair toggles the pointer. |
| Therefore, the first vertex is stored as vertex A, the second stored |
| as vertex B, the third stored as vertex A, and so on. |
| ***SwapTriangleStripVertexPointerXXX |
| causes the pointer to point to the vertex it is not pointing to. Therefore |
| if the pointer points to vertex A then SwapTriangleStripVertexPointerXXX will |
| cause it to point to vertex B and vice-versa. *** Any vertex after the second one sent |
| forms a triangle from vertex A, vertex B, and the current vertex (in that order). |
| |
| same section the following should be appended to the end. |
| SwapTriangleStripVertexPointerXXX has no effect unless it is called between |
| a Begin with the argument TRIANGLE_STRIP, and the corresponding call to End. |
| |
| Additions to Chapter 3 of the 1.0 Specification (Rasterization) |
| None |
| |
| Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations |
| and the Frame Buffer) |
| None |
| |
| Additions to Chapter 5 of the 1.0 Specification (Special Functions) |
| |
| Currently Igloo doesn't use OpenGL display lists. But this command |
| should be display listable. So it is *NOT* included in the set of |
| commands which are *NOT* display listable. |
| |
| The way this is spec'd this will *NOT* generate an extra feedback vertex, |
| or selection hit. So nothing is added here regarding feedback and selection. |
| HOWEVER, if this is implemented in the future in software it is |
| likely to be implemented by redundantly re-issuing the second |
| to the last vertex issued, and this *WILL* generate a couple of |
| feedback or selection vertices. |
| |
| |
| Additions to Chapter 6 of the 1.0 Specification (State and State Requests) |
| |
| None |
| |
| Additions to the GLX Specification |
| |
| GLX Protocol |
| |
| This command does not need to be recognized by GLX. |
| IGLOO doesn't use indirect rendering. |
| |
| Dependencies on SGI_extension_name |
| |
| None |
| |
| Errors |
| |
| This command should be a no-op for other primitive types |
| (and outside of glBegin/glEnd.) However, this implies that |
| the Error state knows if you are within Begin/End. and |
| worse it means that it knows if you are generating a Triangle |
| Strip. I'm assuming that if it is possible to flag |
| an error it is also possible to ignore it. SO. . .there is |
| no error generated outside of glBegin(GL_TRIANGLE_STRIP) glEnd() |
| and so nothing is written into this section. |
| |
| Blythe said that he'd talk to Myoung and make sure that this |
| is ok. |
| |
| |
| |
| New State |
| |
| * Description of all state values in table format. Note that client |
| * state should have "client" listed in the Attrib column. |
| |
| Initial |
| Get Value Get Command Type Value Attrib |
| --------- ----------- ---- ------- ------ |
| None |
| |
| New Implementation Dependent State |
| |
| * Description of all implementation dependent state in table format. |
| |
| Minimum |
| Get Value Get Command Type Value |
| --------- ----------- ---- ------- |
| |
| None |
| |