15df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul
25df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul/*
35df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * Mesa 3-D graphics library
45df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * Version:  4.0.3
55df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul *
65df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
75df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul *
85df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * Permission is hereby granted, free of charge, to any person obtaining a
95df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * copy of this software and associated documentation files (the "Software"),
105df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * to deal in the Software without restriction, including without limitation
115df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense,
125df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * and/or sell copies of the Software, and to permit persons to whom the
135df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * Software is furnished to do so, subject to the following conditions:
145df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul *
155df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * The above copyright notice and this permission notice shall be included
165df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * in all copies or substantial portions of the Software.
175df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul *
185df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
195df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
205df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
215df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
225df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
235df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
245df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul *
255df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul * Authors:
265df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul *    Keith Whitwell <keith@tungstengraphics.com>
275df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul */
285df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul
295df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paultypedef struct {
305df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLfloat x, y, z, w;
315df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul} TAG(_coord_t);
325df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul
335df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#ifdef COLOR_IS_RGBA
345df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paultypedef struct {
355df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN
365df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLubyte alpha, blue, green, red;
375df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#else
385df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLubyte red, green, blue, alpha;
395df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#endif
405df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul} TAG(_color_t);
415df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#else
425df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paultypedef struct {
435df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN
445df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLubyte alpha, red, green, blue;
455df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#else
465df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLubyte blue, green, red, alpha;
475df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#endif
485df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul} TAG(_color_t);
495df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul#endif
505df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul
515df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paultypedef union {
525df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   struct {
535df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat x, y, z, w;
545df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      TAG(_color_t) color;
555df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      TAG(_color_t) specular;
565df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u0, v0;
575df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u1, v1;
585df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u2, v2;
595df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u3, v3;
605df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   } v;
615df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   struct {
625df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat x, y, z, w;
635df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      TAG(_color_t) color;
645df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      TAG(_color_t) specular;
655df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u0, v0, q0;
665df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u1, v1, q1;
675df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u2, v2, q2;
685df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat u3, v3, q3;
695df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   } pv;
705df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   struct {
715df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      GLfloat x, y, z;
725df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul      TAG(_color_t) color;
735df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   } tv;
745df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLfloat f[24];
755df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLuint  ui[24];
765df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul   GLubyte ub4[24][4];
775df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul} TAG(Vertex), *TAG(VertexPtr);
785df82c82bd53db90eb72c5aad4dd20cf6f1116b1Brian Paul
79