mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
Merge branch 'origin'
This commit is contained in:
commit
5aa997dafb
6 changed files with 20 additions and 255 deletions
|
|
@ -612,10 +612,13 @@ static void nv10WindowMoved(nouveauContextPtr nmesa)
|
||||||
OUT_RING_CACHE((h << 16) | y);
|
OUT_RING_CACHE((h << 16) | y);
|
||||||
|
|
||||||
/* something to do with clears, possibly doesn't belong here */
|
/* something to do with clears, possibly doesn't belong here */
|
||||||
|
BEGIN_RING_SIZE(NvSub3D, 0x02b4, 1);
|
||||||
|
OUT_RING(0);
|
||||||
|
|
||||||
BEGIN_RING_CACHE(NvSub3D,
|
BEGIN_RING_CACHE(NvSub3D,
|
||||||
NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(0), 2);
|
NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(0), 2);
|
||||||
OUT_RING_CACHE(((w+x) << 16) | x | 0x800);
|
OUT_RING_CACHE(((w+x-1) << 16) | x | 0x08000800);
|
||||||
OUT_RING_CACHE(((h+y) << 16) | y | 0x800);
|
OUT_RING_CACHE(((h+y-1) << 16) | y | 0x08000800);
|
||||||
for (i=1; i<7; i++) {
|
for (i=1; i<7; i++) {
|
||||||
BEGIN_RING_CACHE(NvSub3D,
|
BEGIN_RING_CACHE(NvSub3D,
|
||||||
NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(i), 1);
|
NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(i), 1);
|
||||||
|
|
@ -651,14 +654,12 @@ static GLboolean nv10InitCard(nouveauContextPtr nmesa)
|
||||||
OUT_RING(NvDmaFB); /* 194 dma_in_memory2 */
|
OUT_RING(NvDmaFB); /* 194 dma_in_memory2 */
|
||||||
OUT_RING(NvDmaFB); /* 198 dma_in_memory3 */
|
OUT_RING(NvDmaFB); /* 198 dma_in_memory3 */
|
||||||
|
|
||||||
BEGIN_RING_SIZE(NvSub3D, 0x02b4, 1);
|
|
||||||
OUT_RING(0);
|
|
||||||
BEGIN_RING_SIZE(NvSub3D, 0x0290, 1);
|
BEGIN_RING_SIZE(NvSub3D, 0x0290, 1);
|
||||||
OUT_RING(0x00100001);
|
OUT_RING(0x00100001);
|
||||||
BEGIN_RING_SIZE(NvSub3D, 0x03f4, 1);
|
BEGIN_RING_SIZE(NvSub3D, 0x03f4, 1);
|
||||||
OUT_RING(0);
|
OUT_RING(0);
|
||||||
|
|
||||||
return GL_FALSE;
|
return GL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update buffer offset/pitch/format */
|
/* Update buffer offset/pitch/format */
|
||||||
|
|
@ -667,7 +668,7 @@ static GLboolean nv10BindBuffers(nouveauContextPtr nmesa, int num_color,
|
||||||
nouveau_renderbuffer *depth)
|
nouveau_renderbuffer *depth)
|
||||||
{
|
{
|
||||||
GLuint x, y, w, h;
|
GLuint x, y, w, h;
|
||||||
GLuint pitch, format;
|
GLuint pitch, format, depth_pitch;
|
||||||
|
|
||||||
w = color[0]->mesa.Width;
|
w = color[0]->mesa.Width;
|
||||||
h = color[0]->mesa.Height;
|
h = color[0]->mesa.Height;
|
||||||
|
|
@ -680,10 +681,8 @@ static GLboolean nv10BindBuffers(nouveauContextPtr nmesa, int num_color,
|
||||||
BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ, 6);
|
BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ, 6);
|
||||||
OUT_RING_CACHE((w << 16) | x);
|
OUT_RING_CACHE((w << 16) | x);
|
||||||
OUT_RING_CACHE((h << 16) | y);
|
OUT_RING_CACHE((h << 16) | y);
|
||||||
pitch = color[0]->pitch;
|
depth_pitch = (depth ? depth->pitch : color[0]->pitch);
|
||||||
if (depth) {
|
pitch = (depth_pitch<<16) | color[0]->pitch;
|
||||||
pitch |= (depth->pitch << 16);
|
|
||||||
}
|
|
||||||
format = 0x108;
|
format = 0x108;
|
||||||
if (color[0]->mesa._ActualFormat != GL_RGBA8) {
|
if (color[0]->mesa._ActualFormat != GL_RGBA8) {
|
||||||
format = 0x103; /* R5G6B5 color buffer */
|
format = 0x103; /* R5G6B5 color buffer */
|
||||||
|
|
|
||||||
|
|
@ -724,8 +724,6 @@ struct r200_store {
|
||||||
/* r200_tcl.c
|
/* r200_tcl.c
|
||||||
*/
|
*/
|
||||||
struct r200_tcl_info {
|
struct r200_tcl_info {
|
||||||
GLuint vertex_format;
|
|
||||||
GLint last_offset;
|
|
||||||
GLuint hw_primitive;
|
GLuint hw_primitive;
|
||||||
|
|
||||||
/* hw can handle 12 components max */
|
/* hw can handle 12 components max */
|
||||||
|
|
@ -812,87 +810,6 @@ struct r200_ioctl {
|
||||||
#define R200_MAX_PRIMS 64
|
#define R200_MAX_PRIMS 64
|
||||||
|
|
||||||
|
|
||||||
/* Want to keep a cache of these around. Each is parameterized by
|
|
||||||
* only a single value which has only a small range. Only expect a
|
|
||||||
* few, so just rescan the list each time?
|
|
||||||
*/
|
|
||||||
struct dynfn {
|
|
||||||
struct dynfn *next, *prev;
|
|
||||||
int key[2];
|
|
||||||
char *code;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct dfn_lists {
|
|
||||||
struct dynfn Vertex2f;
|
|
||||||
struct dynfn Vertex2fv;
|
|
||||||
struct dynfn Vertex3f;
|
|
||||||
struct dynfn Vertex3fv;
|
|
||||||
struct dynfn Color4ub;
|
|
||||||
struct dynfn Color4ubv;
|
|
||||||
struct dynfn Color3ub;
|
|
||||||
struct dynfn Color3ubv;
|
|
||||||
struct dynfn Color4f;
|
|
||||||
struct dynfn Color4fv;
|
|
||||||
struct dynfn Color3f;
|
|
||||||
struct dynfn Color3fv;
|
|
||||||
struct dynfn SecondaryColor3ubEXT;
|
|
||||||
struct dynfn SecondaryColor3ubvEXT;
|
|
||||||
struct dynfn SecondaryColor3fEXT;
|
|
||||||
struct dynfn SecondaryColor3fvEXT;
|
|
||||||
struct dynfn Normal3f;
|
|
||||||
struct dynfn Normal3fv;
|
|
||||||
struct dynfn TexCoord3f;
|
|
||||||
struct dynfn TexCoord3fv;
|
|
||||||
struct dynfn TexCoord2f;
|
|
||||||
struct dynfn TexCoord2fv;
|
|
||||||
struct dynfn TexCoord1f;
|
|
||||||
struct dynfn TexCoord1fv;
|
|
||||||
struct dynfn MultiTexCoord3fARB;
|
|
||||||
struct dynfn MultiTexCoord3fvARB;
|
|
||||||
struct dynfn MultiTexCoord2fARB;
|
|
||||||
struct dynfn MultiTexCoord2fvARB;
|
|
||||||
struct dynfn MultiTexCoord1fARB;
|
|
||||||
struct dynfn MultiTexCoord1fvARB;
|
|
||||||
struct dynfn FogCoordfEXT;
|
|
||||||
struct dynfn FogCoordfvEXT;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct dfn_generators {
|
|
||||||
struct dynfn *(*Vertex2f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Vertex2fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Vertex3f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Vertex3fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color4ub)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color4ubv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color3ub)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color3ubv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color4f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color4fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color3f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Color3fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*SecondaryColor3ubEXT)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*SecondaryColor3ubvEXT)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*SecondaryColor3fEXT)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*SecondaryColor3fvEXT)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Normal3f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*Normal3fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*TexCoord3f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*TexCoord3fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*TexCoord2f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*TexCoord2fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*TexCoord1f)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*TexCoord1fv)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*MultiTexCoord3fARB)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*MultiTexCoord3fvARB)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*MultiTexCoord2fARB)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*MultiTexCoord2fvARB)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*MultiTexCoord1fARB)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*MultiTexCoord1fvARB)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*FogCoordfEXT)( GLcontext *, const int * );
|
|
||||||
struct dynfn *(*FogCoordfvEXT)( GLcontext *, const int * );
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct r200_prim {
|
struct r200_prim {
|
||||||
GLuint start;
|
GLuint start;
|
||||||
|
|
@ -913,43 +830,6 @@ struct r200_prim {
|
||||||
|
|
||||||
#define R200_MAX_VERTEX_SIZE ((3*6)+11)
|
#define R200_MAX_VERTEX_SIZE ((3*6)+11)
|
||||||
|
|
||||||
struct r200_vbinfo {
|
|
||||||
GLint counter, initial_counter;
|
|
||||||
GLint *dmaptr;
|
|
||||||
void (*notify)( void );
|
|
||||||
GLint vertex_size;
|
|
||||||
|
|
||||||
union { float f; int i; r200_color_t color; } vertex[R200_MAX_VERTEX_SIZE];
|
|
||||||
|
|
||||||
GLfloat *normalptr;
|
|
||||||
GLfloat *floatcolorptr;
|
|
||||||
GLfloat *fogptr;
|
|
||||||
r200_color_t *colorptr;
|
|
||||||
GLfloat *floatspecptr;
|
|
||||||
r200_color_t *specptr;
|
|
||||||
GLfloat *texcoordptr[8]; /* 6 (TMU) + 2 for r200_vtxfmt_c.c when GL_TEXTURE6/7 */
|
|
||||||
|
|
||||||
|
|
||||||
GLenum *prim; /* &ctx->Driver.CurrentExecPrimitive */
|
|
||||||
GLuint primflags;
|
|
||||||
GLboolean enabled; /* *_NO_VTXFMT / *_NO_TCL env vars */
|
|
||||||
GLboolean installed;
|
|
||||||
GLboolean fell_back;
|
|
||||||
GLboolean recheck;
|
|
||||||
GLint nrverts;
|
|
||||||
GLuint vtxfmt_0, vtxfmt_1;
|
|
||||||
|
|
||||||
GLuint installed_vertex_format;
|
|
||||||
GLuint installed_color_3f_sz;
|
|
||||||
|
|
||||||
struct r200_prim primlist[R200_MAX_PRIMS];
|
|
||||||
int nrprims;
|
|
||||||
|
|
||||||
struct dfn_lists dfn_cache;
|
|
||||||
struct dfn_generators codegen;
|
|
||||||
GLvertexformat vtxfmt;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct r200_context {
|
struct r200_context {
|
||||||
GLcontext *glCtx; /* Mesa context */
|
GLcontext *glCtx; /* Mesa context */
|
||||||
|
|
@ -1041,10 +921,6 @@ struct r200_context {
|
||||||
*/
|
*/
|
||||||
struct r200_swtcl_info swtcl;
|
struct r200_swtcl_info swtcl;
|
||||||
|
|
||||||
/* r200_vtxfmt.c
|
|
||||||
*/
|
|
||||||
struct r200_vbinfo vb;
|
|
||||||
|
|
||||||
/* Mirrors of some DRI state
|
/* Mirrors of some DRI state
|
||||||
*/
|
*/
|
||||||
struct r200_dri_mirror dri;
|
struct r200_dri_mirror dri;
|
||||||
|
|
|
||||||
|
|
@ -664,14 +664,13 @@ void r200EmitArrays( GLcontext *ctx, GLuint inputs )
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (vfmt0 != rmesa->hw.vtx.cmd[VTX_VTXFMT_0] ||
|
if (vfmt0 != rmesa->hw.vtx.cmd[VTX_VTXFMT_0] ||
|
||||||
vfmt1 != rmesa->hw.vtx.cmd[VTX_VTXFMT_1]) {
|
vfmt1 != rmesa->hw.vtx.cmd[VTX_VTXFMT_1]) {
|
||||||
R200_STATECHANGE( rmesa, vtx );
|
R200_STATECHANGE( rmesa, vtx );
|
||||||
rmesa->hw.vtx.cmd[VTX_VTXFMT_0] = vfmt0;
|
rmesa->hw.vtx.cmd[VTX_VTXFMT_0] = vfmt0;
|
||||||
rmesa->hw.vtx.cmd[VTX_VTXFMT_1] = vfmt1;
|
rmesa->hw.vtx.cmd[VTX_VTXFMT_1] = vfmt1;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmesa->tcl.nr_aos_components = nr;
|
rmesa->tcl.nr_aos_components = nr;
|
||||||
rmesa->tcl.vertex_format = vfmt0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2542,15 +2542,17 @@ static void r200InvalidateState( GLcontext *ctx, GLuint new_state )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* A hack. The r200 can actually cope just fine with materials
|
/* A hack. The r200 can actually cope just fine with materials
|
||||||
* between begin/ends, so fix this. But how ?
|
* between begin/ends, so fix this.
|
||||||
|
* Should map to inputs just like the generic vertex arrays for vertex progs.
|
||||||
|
* In theory there could still be too many and we'd still need a fallback.
|
||||||
*/
|
*/
|
||||||
static GLboolean check_material( GLcontext *ctx )
|
static GLboolean check_material( GLcontext *ctx )
|
||||||
{
|
{
|
||||||
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
||||||
GLint i;
|
GLint i;
|
||||||
|
|
||||||
for (i = _TNL_ATTRIB_MAT_FRONT_AMBIENT;
|
for (i = _TNL_ATTRIB_MAT_FRONT_AMBIENT;
|
||||||
i < _TNL_ATTRIB_MAT_BACK_INDEXES;
|
i < _TNL_ATTRIB_MAT_BACK_INDEXES;
|
||||||
i++)
|
i++)
|
||||||
if (tnl->vb.AttribPtr[i] &&
|
if (tnl->vb.AttribPtr[i] &&
|
||||||
tnl->vb.AttribPtr[i]->stride)
|
tnl->vb.AttribPtr[i]->stride)
|
||||||
|
|
@ -2558,7 +2560,7 @@ static GLboolean check_material( GLcontext *ctx )
|
||||||
|
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void r200WrapRunPipeline( GLcontext *ctx )
|
static void r200WrapRunPipeline( GLcontext *ctx )
|
||||||
{
|
{
|
||||||
r200ContextPtr rmesa = R200_CONTEXT(ctx);
|
r200ContextPtr rmesa = R200_CONTEXT(ctx);
|
||||||
|
|
@ -2572,7 +2574,7 @@ static void r200WrapRunPipeline( GLcontext *ctx )
|
||||||
if (rmesa->NewGLState)
|
if (rmesa->NewGLState)
|
||||||
r200ValidateState( ctx );
|
r200ValidateState( ctx );
|
||||||
|
|
||||||
has_material = (ctx->Light.Enabled && check_material( ctx ));
|
has_material = !ctx->VertexProgram._Enabled && ctx->Light.Enabled && check_material( ctx );
|
||||||
|
|
||||||
if (has_material) {
|
if (has_material) {
|
||||||
TCL_FALLBACK( ctx, R200_TCL_FALLBACK_MATERIAL, GL_TRUE );
|
TCL_FALLBACK( ctx, R200_TCL_FALLBACK_MATERIAL, GL_TRUE );
|
||||||
|
|
|
||||||
|
|
@ -461,7 +461,7 @@ static GLboolean r200_translate_vertex_program(GLcontext *ctx, struct r200_verte
|
||||||
|
|
||||||
/* for fogc, can't change mesa_vp, as it would hose swtnl, and exp with
|
/* for fogc, can't change mesa_vp, as it would hose swtnl, and exp with
|
||||||
base e isn't directly available neither. */
|
base e isn't directly available neither. */
|
||||||
if (mesa_vp->Base.OutputsWritten & VERT_RESULT_FOGC && !vp->fogpidx) {
|
if ((mesa_vp->Base.OutputsWritten & (1 << VERT_RESULT_FOGC)) && !vp->fogpidx) {
|
||||||
struct gl_program_parameter_list *paramList;
|
struct gl_program_parameter_list *paramList;
|
||||||
GLint tokens[6] = { STATE_FOG_PARAMS, 0, 0, 0, 0, 0 };
|
GLint tokens[6] = { STATE_FOG_PARAMS, 0, 0, 0, 0, 0 };
|
||||||
paramList = mesa_vp->Base.Parameters;
|
paramList = mesa_vp->Base.Parameters;
|
||||||
|
|
|
||||||
|
|
@ -529,7 +529,6 @@ struct radeon_store {
|
||||||
*/
|
*/
|
||||||
struct radeon_tcl_info {
|
struct radeon_tcl_info {
|
||||||
GLuint vertex_format;
|
GLuint vertex_format;
|
||||||
GLint last_offset;
|
|
||||||
GLuint hw_primitive;
|
GLuint hw_primitive;
|
||||||
|
|
||||||
/* Temporary for cases where incoming vertex data is incompatible
|
/* Temporary for cases where incoming vertex data is incompatible
|
||||||
|
|
@ -600,75 +599,6 @@ struct radeon_ioctl {
|
||||||
#define RADEON_MAX_PRIMS 64
|
#define RADEON_MAX_PRIMS 64
|
||||||
|
|
||||||
|
|
||||||
/* Want to keep a cache of these around. Each is parameterized by
|
|
||||||
* only a single value which has only a small range. Only expect a
|
|
||||||
* few, so just rescan the list each time?
|
|
||||||
*/
|
|
||||||
struct dynfn {
|
|
||||||
struct dynfn *next, *prev;
|
|
||||||
int key;
|
|
||||||
char *code;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct dfn_lists {
|
|
||||||
struct dynfn Vertex2f;
|
|
||||||
struct dynfn Vertex2fv;
|
|
||||||
struct dynfn Vertex3f;
|
|
||||||
struct dynfn Vertex3fv;
|
|
||||||
struct dynfn Color4ub;
|
|
||||||
struct dynfn Color4ubv;
|
|
||||||
struct dynfn Color3ub;
|
|
||||||
struct dynfn Color3ubv;
|
|
||||||
struct dynfn Color4f;
|
|
||||||
struct dynfn Color4fv;
|
|
||||||
struct dynfn Color3f;
|
|
||||||
struct dynfn Color3fv;
|
|
||||||
struct dynfn SecondaryColor3ubEXT;
|
|
||||||
struct dynfn SecondaryColor3ubvEXT;
|
|
||||||
struct dynfn SecondaryColor3fEXT;
|
|
||||||
struct dynfn SecondaryColor3fvEXT;
|
|
||||||
struct dynfn Normal3f;
|
|
||||||
struct dynfn Normal3fv;
|
|
||||||
struct dynfn TexCoord2f;
|
|
||||||
struct dynfn TexCoord2fv;
|
|
||||||
struct dynfn TexCoord1f;
|
|
||||||
struct dynfn TexCoord1fv;
|
|
||||||
struct dynfn MultiTexCoord2fARB;
|
|
||||||
struct dynfn MultiTexCoord2fvARB;
|
|
||||||
struct dynfn MultiTexCoord1fARB;
|
|
||||||
struct dynfn MultiTexCoord1fvARB;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct dfn_generators {
|
|
||||||
struct dynfn *(*Vertex2f)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Vertex2fv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Vertex3f)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Vertex3fv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color4ub)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color4ubv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color3ub)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color3ubv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color4f)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color4fv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color3f)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Color3fv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*SecondaryColor3ubEXT)( GLcontext *, int );
|
|
||||||
struct dynfn *(*SecondaryColor3ubvEXT)( GLcontext *, int );
|
|
||||||
struct dynfn *(*SecondaryColor3fEXT)( GLcontext *, int );
|
|
||||||
struct dynfn *(*SecondaryColor3fvEXT)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Normal3f)( GLcontext *, int );
|
|
||||||
struct dynfn *(*Normal3fv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*TexCoord2f)( GLcontext *, int );
|
|
||||||
struct dynfn *(*TexCoord2fv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*TexCoord1f)( GLcontext *, int );
|
|
||||||
struct dynfn *(*TexCoord1fv)( GLcontext *, int );
|
|
||||||
struct dynfn *(*MultiTexCoord2fARB)( GLcontext *, int );
|
|
||||||
struct dynfn *(*MultiTexCoord2fvARB)( GLcontext *, int );
|
|
||||||
struct dynfn *(*MultiTexCoord1fARB)( GLcontext *, int );
|
|
||||||
struct dynfn *(*MultiTexCoord1fvARB)( GLcontext *, int );
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct radeon_prim {
|
struct radeon_prim {
|
||||||
GLuint start;
|
GLuint start;
|
||||||
|
|
@ -685,43 +615,6 @@ struct radeon_prim {
|
||||||
*/
|
*/
|
||||||
#define RADEON_MAX_VERTEX_SIZE 20
|
#define RADEON_MAX_VERTEX_SIZE 20
|
||||||
|
|
||||||
struct radeon_vbinfo {
|
|
||||||
GLint counter, initial_counter;
|
|
||||||
GLint *dmaptr;
|
|
||||||
void (*notify)( void );
|
|
||||||
GLint vertex_size;
|
|
||||||
|
|
||||||
union { float f; int i; radeon_color_t color; } vertex[RADEON_MAX_VERTEX_SIZE];
|
|
||||||
|
|
||||||
GLfloat *normalptr;
|
|
||||||
GLfloat *floatcolorptr;
|
|
||||||
radeon_color_t *colorptr;
|
|
||||||
GLfloat *floatspecptr;
|
|
||||||
radeon_color_t *specptr;
|
|
||||||
GLfloat *texcoordptr[4]; /* 3 (TMU) + 1 for radeon_vtxfmt_c.c when GL_TEXTURE3 */
|
|
||||||
|
|
||||||
GLenum *prim; /* &ctx->Driver.CurrentExecPrimitive */
|
|
||||||
GLuint primflags;
|
|
||||||
GLboolean enabled; /* *_NO_VTXFMT / *_NO_TCL env vars */
|
|
||||||
GLboolean installed;
|
|
||||||
GLboolean fell_back;
|
|
||||||
GLboolean recheck;
|
|
||||||
GLint nrverts;
|
|
||||||
GLuint vertex_format;
|
|
||||||
|
|
||||||
GLuint installed_vertex_format;
|
|
||||||
GLuint installed_color_3f_sz;
|
|
||||||
|
|
||||||
struct radeon_prim primlist[RADEON_MAX_PRIMS];
|
|
||||||
int nrprims;
|
|
||||||
|
|
||||||
struct dfn_lists dfn_cache;
|
|
||||||
struct dfn_generators codegen;
|
|
||||||
GLvertexformat vtxfmt;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct radeon_context {
|
struct radeon_context {
|
||||||
GLcontext *glCtx; /* Mesa context */
|
GLcontext *glCtx; /* Mesa context */
|
||||||
|
|
@ -808,10 +701,6 @@ struct radeon_context {
|
||||||
*/
|
*/
|
||||||
struct radeon_swtcl_info swtcl;
|
struct radeon_swtcl_info swtcl;
|
||||||
|
|
||||||
/* radeon_vtxfmt.c
|
|
||||||
*/
|
|
||||||
struct radeon_vbinfo vb;
|
|
||||||
|
|
||||||
/* Mirrors of some DRI state
|
/* Mirrors of some DRI state
|
||||||
*/
|
*/
|
||||||
struct radeon_dri_mirror dri;
|
struct radeon_dri_mirror dri;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue