| XXX - Not complete yet!!! | 
 |  | 
 | Name | 
 |  | 
 |     SGIX_vector_ops | 
 |  | 
 | Name Strings | 
 |  | 
 |     GL_SGIX_vector_ops | 
 |  | 
 | Version | 
 |  | 
 |     $Date: 1997/11/24 09:37:13 $ $Revision: 1.1 $ | 
 |  | 
 | Number | 
 |  | 
 |     XXX | 
 |  | 
 | Dependencies | 
 |  | 
 |     OpenGL 1.1 is required. | 
 |     SGIX_fragment_light affects the definition of this extension. | 
 |  | 
 | Overview | 
 |  | 
 |     With the increased use of multi-pass algorithms depending on using | 
 |     more in-the-pipe calculations, it becomes interesting to provide | 
 |     additional support for some of the basic vector operations. | 
 |     This extension adds two new operations, the vector normalization | 
 |     function, and the vector cross-product operation. | 
 |     When enabled, vector normalization or cross-product is in lieu | 
 |     of the normal lighting.  In other words, the resulting vector replaces | 
 |     the lighted fragment color and the X, Y, and Z components comprise | 
 |     the red, green, and blue values of the fragment, respectively.  Alpha | 
 |     is set to zero. | 
 |  | 
 | Issues | 
 |  | 
 |     *	Should these two vector operations be separated into two | 
 | 	independent specifications? | 
 |  | 
 |  | 
 | New Procedures and Functions | 
 |  | 
 |     void VectorOperationSGIX(enum operation); | 
 |     void GetVectorOperationSGIX(enum operation); | 
 |  | 
 | New Tokens | 
 |  | 
 |     Accepted by the <operation> parameter of VectorOperationSGIX | 
 |     and GetVectorOperationSGIX, | 
 |  | 
 |     VECTOR_NORMALIZATION_SGIX		0x???? | 
 |     VECTOR_CROSS_PRODUCT_SGIX		0x???? | 
 |  | 
 |  | 
 |     Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, | 
 |  | 
 |     VECTOR_OPERATIONS_SGIX		0x???? | 
 |  | 
 |  | 
 | Additions to the chapter on per fragment lighting | 
 |  | 
 |     When enabled, the vector operations supercede the usual operation | 
 |     of the per-fragment lighting.  Instead of the lighted fragment color, | 
 |     the color components produced by the fragment ligher are the three | 
 |     components of the vector operation specified by VectorOperationSGIX. | 
 |  | 
 |     The vector normal operation computes a new unit vector in the direction | 
 |     of the current per-fragment normal vector.	This normal vector is | 
 |     the result of interpolating the per-vertex supplied normal. | 
 |  | 
 |     The vector cross-product operation computed a new unit vector in | 
 |     the direction perpendicular to the per-fragment normal and view vectors | 
 |     using the standard cross-product operation. | 
 |  | 
 | Additions to Chapter 3 of the 1.1 Specification (Rasterization) | 
 |  | 
 |     None | 
 |  | 
 | Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations | 
 | and the Frame Buffer) | 
 |  | 
 |     None | 
 |  | 
 | Additions to Chapter 5 of the 1.1 Specification (Special Functions) | 
 |  | 
 |     None | 
 |  | 
 | Additions to Chapter 6 of the 1.1 Specification (State and State Requests) | 
 |  | 
 |     TBD | 
 |  | 
 | Additions to the GLX Specification | 
 |  | 
 |     TBD | 
 |  | 
 | Dependencies on SGIX_fragment_light | 
 |  | 
 |     If SGIX_fragment_light is not implemented, references to fragment | 
 |     lighting in this document are invalid and should be ignored. | 
 |  | 
 | Errors | 
 |  | 
 |     GL_INVALID_VALUE is generated if the requested vector operation is not | 
 |     one of VECTOR_NORMALIZATION_SGIX or VECTOR_CROSS_PRODUCT_SGIX. | 
 |  | 
 | New State | 
 |  | 
 |     Get Value			Get Command		Type	Initial Value	Attribute | 
 |     ---------			-----------		----	-------------	--------- | 
 |     VECTOR_OPERATIONS_SGIX	GetVectorOperationfv	?????	?????		lighting | 
 |  | 
 | New Implementation Dependent State | 
 |  | 
 |     None |