Initial templates for immediate mode fastpaths, or custom tnl modules.

Completely untested and incomplete.  More to follow.
This commit is contained in:
Gareth Hughes
2001-03-13 17:39:56 +00:00
parent 3df1e04b10
commit 3709db0e17
2 changed files with 33 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
/* $Id: t_dd_tritmp.h,v 1.6 2001/03/12 00:48:44 gareth Exp $ */ /* $Id: t_dd_tritmp.h,v 1.7 2001/03/13 17:39:56 gareth Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -48,8 +48,8 @@ Brian Paul All Rights Reserved.
* HAVE_SPEC: Vertices have secondary rgba values. * HAVE_SPEC: Vertices have secondary rgba values.
* *
* VERT_X(v): Alias for vertex x value. * VERT_X(v): Alias for vertex x value.
* VERT_Y(v): Alias for vertex x value. * VERT_Y(v): Alias for vertex y value.
* VERT_Z(v): Alias for vertex x value. * VERT_Z(v): Alias for vertex z value.
* DEPTH_SCALE: Scale for offset. * DEPTH_SCALE: Scale for offset.
* *
* VERTEX: Hardware vertex type. * VERTEX: Hardware vertex type.

View File

@@ -1,4 +1,4 @@
/* $Id: t_dd_vertex.h,v 1.5 2001/03/12 00:48:44 gareth Exp $ */ /* $Id: t_dd_vertex.h,v 1.6 2001/03/13 17:39:56 gareth Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -27,27 +27,31 @@
* Keith Whitwell <keithw@valinux.com> * Keith Whitwell <keithw@valinux.com>
*/ */
typedef struct {
GLfloat x, y, z, w;
} TAG(_coord);
#ifdef COLOR_IS_RGBA #ifdef COLOR_IS_RGBA
typedef struct { typedef struct {
GLubyte red; GLubyte red;
GLubyte green; GLubyte green;
GLubyte blue; GLubyte blue;
GLubyte alpha; GLubyte alpha;
} TAG(_color); } TAG(_color_t);
#else #else
typedef struct { typedef struct {
GLubyte blue; GLubyte blue;
GLubyte green; GLubyte green;
GLubyte red; GLubyte red;
GLubyte alpha; GLubyte alpha;
} TAG(_color); } TAG(_color_t);
#endif #endif
typedef union { typedef union {
struct { struct {
GLfloat x, y, z, w; GLfloat x, y, z, w;
TAG(_color) color; TAG(_color_t) color;
TAG(_color) specular; TAG(_color_t) specular;
GLfloat u0, v0; GLfloat u0, v0;
GLfloat u1, v1; GLfloat u1, v1;
GLfloat u2, v2; GLfloat u2, v2;
@@ -55,8 +59,8 @@ typedef union {
} v; } v;
struct { struct {
GLfloat x, y, z, w; GLfloat x, y, z, w;
TAG(_color) color; TAG(_color_t) color;
TAG(_color) specular; TAG(_color_t) specular;
GLfloat u0, v0, q0; GLfloat u0, v0, q0;
GLfloat u1, v1, q1; GLfloat u1, v1, q1;
GLfloat u2, v2, q2; GLfloat u2, v2, q2;
@@ -64,9 +68,27 @@ typedef union {
} pv; } pv;
struct { struct {
GLfloat x, y, z; GLfloat x, y, z;
TAG(_color) color; TAG(_color_t) color;
} tv; } tv;
GLfloat f[24]; GLfloat f[24];
GLuint ui[24]; GLuint ui[24];
GLubyte ub4[24][4]; GLubyte ub4[24][4];
} TAG(Vertex), *TAG(VertexPtr); } TAG(Vertex), *TAG(VertexPtr);
typedef struct {
TAG(_coord_t) obj;
TAG(_coord_t) normal;
TAG(_coord_t) clip;
GLuint mask;
TAG(_color_t) color;
TAG(_color_t) specular;
GLuint __padding0;
TAG(_coord_t) win;
TAG(_coord_t) eye;
TAG(_coord_t) texture[MAX_TEXTURE_UNITS];
GLuint __padding1[8]; /* FIXME: This is kinda evil... */
} TAG(TnlVertex), *TAG(TnlVertexPtr);