ソースを参照

fixed assertion, replaced switch() with if/elseif

tags/mesa_4_1
Brian Paul 23年前
コミット
28c61d5b49
1個のファイルの変更27行の追加29行の削除
  1. 27
    29
      src/mesa/array_cache/ac_import.c

+ 27
- 29
src/mesa/array_cache/ac_import.c ファイルの表示

@@ -1,4 +1,4 @@
/* $Id: ac_import.c,v 1.18 2002/04/21 20:37:04 brianp Exp $ */
/* $Id: ac_import.c,v 1.19 2002/04/21 21:03:02 brianp Exp $ */

/*
* Mesa 3-D graphics library
@@ -74,7 +74,8 @@ static void reset_texcoord( GLcontext *ctx, GLuint unit )
static void reset_vertex( GLcontext *ctx )
{
ACcontext *ac = AC_CONTEXT(ctx);
ASSERT(ctx->Array.Vertex.Enabled);
ASSERT(ctx->Array.Vertex.Enabled
|| (ctx->VertexProgram.Enabled && ctx->Array.VertexAttrib[0].Enabled));
ac->Raw.Vertex = ctx->Array.Vertex;
STRIDE_ARRAY(ac->Raw.Vertex, ac->start);
ac->IsCached.Vertex = GL_FALSE;
@@ -195,33 +196,30 @@ static void reset_attrib( GLcontext *ctx, GLuint index )
STRIDE_ARRAY(ac->Raw.Attrib[index], ac->start);
}
else if (ctx->Array._Enabled & (1 << index)) {
/* use conventional vertex array */
switch (index) {
case VERT_ATTRIB_POS:
ac->Raw.Attrib[index] = ctx->Array.Vertex;
break;
case VERT_ATTRIB_NORMAL:
ac->Raw.Attrib[index] = ctx->Array.Normal;
break;
case VERT_ATTRIB_COLOR0:
ac->Raw.Attrib[index] = ctx->Array.Color;
break;
case VERT_ATTRIB_COLOR1:
ac->Raw.Attrib[index] = ctx->Array.SecondaryColor;
break;
case VERT_ATTRIB_FOG:
ac->Raw.Attrib[index] = ctx->Array.FogCoord;
break;
default:
if (index >= VERT_ATTRIB_TEX0 && index <= VERT_ATTRIB_TEX7) {
GLuint unit = index - VERT_ATTRIB_TEX0;
ac->Raw.Attrib[index] = ctx->Array.TexCoord[unit];
}
else {
/* missing conventional array (vertex weight, for example) */
fallback = GL_TRUE;
}
break;
/* use conventional vertex array if possible */
if (index == VERT_ATTRIB_POS) {
ac->Raw.Attrib[index] = ctx->Array.Vertex;
}
else if (index == VERT_ATTRIB_NORMAL) {
ac->Raw.Attrib[index] = ctx->Array.Normal;
}
else if (index == VERT_ATTRIB_COLOR0) {
ac->Raw.Attrib[index] = ctx->Array.Color;
}
else if (index == VERT_ATTRIB_COLOR1) {
ac->Raw.Attrib[index] = ctx->Array.SecondaryColor;
}
else if (index == VERT_ATTRIB_FOG) {
ac->Raw.Attrib[index] = ctx->Array.FogCoord;
}
else if (index >= VERT_ATTRIB_TEX0 && index <= VERT_ATTRIB_TEX7) {
GLuint unit = index - VERT_ATTRIB_TEX0;
ASSERT(unit < MAX_TEXTURE_UNITS);
ac->Raw.Attrib[index] = ctx->Array.TexCoord[unit];
}
else {
/* missing conventional array (vertex weight, for example) */
fallback = GL_TRUE;
}
if (!fallback)
STRIDE_ARRAY(ac->Raw.Attrib[index], ac->start);

読み込み中…
キャンセル
保存