15bd8deadSopenharmony_ciXXX - Not complete yet!!!
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ciName
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ci    SGIX_vector_ops
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ciName Strings
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ci    GL_SGIX_vector_ops
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ciVersion
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ci    $Date: 1997/11/24 09:37:13 $ $Revision: 1.1 $
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciNumber
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    XXX
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ciDependencies
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ci    OpenGL 1.1 is required.
225bd8deadSopenharmony_ci    SGIX_fragment_light affects the definition of this extension.
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ciOverview
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ci    With the increased use of multi-pass algorithms depending on using
275bd8deadSopenharmony_ci    more in-the-pipe calculations, it becomes interesting to provide
285bd8deadSopenharmony_ci    additional support for some of the basic vector operations.
295bd8deadSopenharmony_ci    This extension adds two new operations, the vector normalization
305bd8deadSopenharmony_ci    function, and the vector cross-product operation.
315bd8deadSopenharmony_ci    When enabled, vector normalization or cross-product is in lieu
325bd8deadSopenharmony_ci    of the normal lighting.  In other words, the resulting vector replaces
335bd8deadSopenharmony_ci    the lighted fragment color and the X, Y, and Z components comprise
345bd8deadSopenharmony_ci    the red, green, and blue values of the fragment, respectively.  Alpha
355bd8deadSopenharmony_ci    is set to zero.
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ciIssues
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ci    *	Should these two vector operations be separated into two
405bd8deadSopenharmony_ci	independent specifications?
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ciNew Procedures and Functions
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci    void VectorOperationSGIX(enum operation);
465bd8deadSopenharmony_ci    void GetVectorOperationSGIX(enum operation);
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ciNew Tokens
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    Accepted by the <operation> parameter of VectorOperationSGIX
515bd8deadSopenharmony_ci    and GetVectorOperationSGIX,
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci    VECTOR_NORMALIZATION_SGIX		0x????
545bd8deadSopenharmony_ci    VECTOR_CROSS_PRODUCT_SGIX		0x????
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ci    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ci    VECTOR_OPERATIONS_SGIX		0x????
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ciAdditions to the chapter on per fragment lighting
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    When enabled, the vector operations supercede the usual operation
655bd8deadSopenharmony_ci    of the per-fragment lighting.  Instead of the lighted fragment color,
665bd8deadSopenharmony_ci    the color components produced by the fragment ligher are the three
675bd8deadSopenharmony_ci    components of the vector operation specified by VectorOperationSGIX.
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ci    The vector normal operation computes a new unit vector in the direction
705bd8deadSopenharmony_ci    of the current per-fragment normal vector.	This normal vector is
715bd8deadSopenharmony_ci    the result of interpolating the per-vertex supplied normal.
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    The vector cross-product operation computed a new unit vector in
745bd8deadSopenharmony_ci    the direction perpendicular to the per-fragment normal and view vectors
755bd8deadSopenharmony_ci    using the standard cross-product operation.
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization)
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci    None
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
825bd8deadSopenharmony_ciand the Frame Buffer)
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    None
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions)
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci    None
895bd8deadSopenharmony_ci
905bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests)
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    TBD
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ciAdditions to the GLX Specification
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    TBD
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ciDependencies on SGIX_fragment_light
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci    If SGIX_fragment_light is not implemented, references to fragment
1015bd8deadSopenharmony_ci    lighting in this document are invalid and should be ignored.
1025bd8deadSopenharmony_ci
1035bd8deadSopenharmony_ciErrors
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ci    GL_INVALID_VALUE is generated if the requested vector operation is not
1065bd8deadSopenharmony_ci    one of VECTOR_NORMALIZATION_SGIX or VECTOR_CROSS_PRODUCT_SGIX.
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ciNew State
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ci    Get Value			Get Command		Type	Initial Value	Attribute
1115bd8deadSopenharmony_ci    ---------			-----------		----	-------------	---------
1125bd8deadSopenharmony_ci    VECTOR_OPERATIONS_SGIX	GetVectorOperationfv	?????	?????		lighting
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ciNew Implementation Dependent State
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci    None
117