more minor changes to STATE_ indexing
This commit is contained in:
@@ -1138,7 +1138,7 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
state_tokens[2] = STATE_ATTENUATION;
|
state_tokens[2] = STATE_ATTENUATION;
|
||||||
break;
|
break;
|
||||||
case LIGHT_HALF:
|
case LIGHT_HALF:
|
||||||
state_tokens[2] = STATE_HALF;
|
state_tokens[2] = STATE_HALF_VECTOR;
|
||||||
break;
|
break;
|
||||||
case LIGHT_SPOT_DIRECTION:
|
case LIGHT_SPOT_DIRECTION:
|
||||||
state_tokens[2] = STATE_SPOT_DIRECTION;
|
state_tokens[2] = STATE_SPOT_DIRECTION;
|
||||||
@@ -1276,11 +1276,13 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
case STATE_POINT:
|
case STATE_POINT:
|
||||||
switch (*(*inst++)) {
|
switch (*(*inst++)) {
|
||||||
case POINT_SIZE:
|
case POINT_SIZE:
|
||||||
state_tokens[0] = STATE_POINT_SIZE;
|
state_tokens[0] = STATE_POINT;
|
||||||
|
state_tokens[1] = STATE_POINT_SIZE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case POINT_ATTENUATION:
|
case POINT_ATTENUATION:
|
||||||
state_tokens[0] = STATE_POINT_ATTENUATION;
|
state_tokens[0] = STATE_POINT;
|
||||||
|
state_tokens[1] = STATE_POINT_ATTENUATION;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -3378,6 +3380,10 @@ print_state_token (GLint token)
|
|||||||
fprintf (stderr, "STATE_CLIPPLANE ");
|
fprintf (stderr, "STATE_CLIPPLANE ");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STATE_POINT:
|
||||||
|
fprintf (stderr, "STATE_POINT ");
|
||||||
|
break;
|
||||||
|
|
||||||
case STATE_POINT_SIZE:
|
case STATE_POINT_SIZE:
|
||||||
fprintf (stderr, "STATE_POINT_SIZE ");
|
fprintf (stderr, "STATE_POINT_SIZE ");
|
||||||
break;
|
break;
|
||||||
|
@@ -116,7 +116,10 @@ _mesa_fetch_state(GLcontext *ctx, const gl_state_index state[],
|
|||||||
COPY_3V(value, ctx->Light.Light[ln].EyeDirection);
|
COPY_3V(value, ctx->Light.Light[ln].EyeDirection);
|
||||||
value[3] = ctx->Light.Light[ln]._CosCutoff;
|
value[3] = ctx->Light.Light[ln]._CosCutoff;
|
||||||
return;
|
return;
|
||||||
case STATE_HALF:
|
case STATE_SPOT_CUTOFF:
|
||||||
|
value[0] = ctx->Light.Light[ln].SpotCutoff;
|
||||||
|
return;
|
||||||
|
case STATE_HALF_VECTOR:
|
||||||
{
|
{
|
||||||
GLfloat eye_z[] = {0, 0, 1};
|
GLfloat eye_z[] = {0, 0, 1};
|
||||||
|
|
||||||
@@ -261,17 +264,20 @@ _mesa_fetch_state(GLcontext *ctx, const gl_state_index state[],
|
|||||||
COPY_4V(value, ctx->Transform.EyeUserPlane[plane]);
|
COPY_4V(value, ctx->Transform.EyeUserPlane[plane]);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case STATE_POINT_SIZE:
|
case STATE_POINT:
|
||||||
value[0] = ctx->Point.Size;
|
if (state[1] == STATE_POINT_SIZE) {
|
||||||
value[1] = ctx->Point.MinSize;
|
value[0] = ctx->Point.Size;
|
||||||
value[2] = ctx->Point.MaxSize;
|
value[1] = ctx->Point.MinSize;
|
||||||
value[3] = ctx->Point.Threshold;
|
value[2] = ctx->Point.MaxSize;
|
||||||
return;
|
value[3] = ctx->Point.Threshold;
|
||||||
case STATE_POINT_ATTENUATION:
|
}
|
||||||
value[0] = ctx->Point.Params[0];
|
else {
|
||||||
value[1] = ctx->Point.Params[1];
|
ASSERT(state[1] == STATE_POINT_ATTENUATION);
|
||||||
value[2] = ctx->Point.Params[2];
|
value[0] = ctx->Point.Params[0];
|
||||||
value[3] = 1.0F;
|
value[1] = ctx->Point.Params[1];
|
||||||
|
value[2] = ctx->Point.Params[2];
|
||||||
|
value[3] = 1.0F;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
case STATE_MODELVIEW_MATRIX:
|
case STATE_MODELVIEW_MATRIX:
|
||||||
case STATE_PROJECTION_MATRIX:
|
case STATE_PROJECTION_MATRIX:
|
||||||
@@ -399,12 +405,13 @@ _mesa_fetch_state(GLcontext *ctx, const gl_state_index state[],
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
case STATE_NORMAL_SCALE:
|
||||||
|
ASSIGN_4V(value, ctx->_ModelViewInvScale, 0, 0, 1);
|
||||||
|
return;
|
||||||
|
|
||||||
case STATE_INTERNAL:
|
case STATE_INTERNAL:
|
||||||
{
|
{
|
||||||
switch (state[1]) {
|
switch (state[1]) {
|
||||||
case STATE_NORMAL_SCALE:
|
|
||||||
ASSIGN_4V(value, ctx->_ModelViewInvScale, 0, 0, 1);
|
|
||||||
break;
|
|
||||||
case STATE_TEXRECT_SCALE: {
|
case STATE_TEXRECT_SCALE: {
|
||||||
const int unit = (int) state[2];
|
const int unit = (int) state[2];
|
||||||
const struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current;
|
const struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current;
|
||||||
@@ -462,8 +469,7 @@ _mesa_program_state_flags(const GLint state[STATE_LENGTH])
|
|||||||
case STATE_CLIPPLANE:
|
case STATE_CLIPPLANE:
|
||||||
return _NEW_TRANSFORM;
|
return _NEW_TRANSFORM;
|
||||||
|
|
||||||
case STATE_POINT_SIZE:
|
case STATE_POINT:
|
||||||
case STATE_POINT_ATTENUATION:
|
|
||||||
return _NEW_POINT;
|
return _NEW_POINT;
|
||||||
|
|
||||||
case STATE_MODELVIEW_MATRIX:
|
case STATE_MODELVIEW_MATRIX:
|
||||||
@@ -484,10 +490,11 @@ _mesa_program_state_flags(const GLint state[STATE_LENGTH])
|
|||||||
case STATE_VERTEX_PROGRAM:
|
case STATE_VERTEX_PROGRAM:
|
||||||
return _NEW_PROGRAM;
|
return _NEW_PROGRAM;
|
||||||
|
|
||||||
|
case STATE_NORMAL_SCALE:
|
||||||
|
return _NEW_MODELVIEW;
|
||||||
|
|
||||||
case STATE_INTERNAL:
|
case STATE_INTERNAL:
|
||||||
switch (state[1]) {
|
switch (state[1]) {
|
||||||
case STATE_NORMAL_SCALE:
|
|
||||||
return _NEW_MODELVIEW;
|
|
||||||
case STATE_TEXRECT_SCALE:
|
case STATE_TEXRECT_SCALE:
|
||||||
return _NEW_TEXTURE;
|
return _NEW_TEXTURE;
|
||||||
default:
|
default:
|
||||||
@@ -520,7 +527,7 @@ append_token(char *dst, gl_state_index k)
|
|||||||
{
|
{
|
||||||
switch (k) {
|
switch (k) {
|
||||||
case STATE_MATERIAL:
|
case STATE_MATERIAL:
|
||||||
append(dst, "material.");
|
append(dst, "material");
|
||||||
break;
|
break;
|
||||||
case STATE_LIGHT:
|
case STATE_LIGHT:
|
||||||
append(dst, "light");
|
append(dst, "light");
|
||||||
@@ -548,26 +555,29 @@ append_token(char *dst, gl_state_index k)
|
|||||||
case STATE_CLIPPLANE:
|
case STATE_CLIPPLANE:
|
||||||
append(dst, "clip");
|
append(dst, "clip");
|
||||||
break;
|
break;
|
||||||
|
case STATE_POINT:
|
||||||
|
append(dst, "point");
|
||||||
|
break;
|
||||||
case STATE_POINT_SIZE:
|
case STATE_POINT_SIZE:
|
||||||
append(dst, "point.size");
|
append(dst, "size");
|
||||||
break;
|
break;
|
||||||
case STATE_POINT_ATTENUATION:
|
case STATE_POINT_ATTENUATION:
|
||||||
append(dst, "point.attenuation");
|
append(dst, "attenuation");
|
||||||
break;
|
break;
|
||||||
case STATE_MODELVIEW_MATRIX:
|
case STATE_MODELVIEW_MATRIX:
|
||||||
append(dst, "modelview");
|
append(dst, "matrix.modelview");
|
||||||
break;
|
break;
|
||||||
case STATE_PROJECTION_MATRIX:
|
case STATE_PROJECTION_MATRIX:
|
||||||
append(dst, "projection");
|
append(dst, "matrix.projection");
|
||||||
break;
|
break;
|
||||||
case STATE_MVP_MATRIX:
|
case STATE_MVP_MATRIX:
|
||||||
append(dst, "mvp");
|
append(dst, "matrix.mvp");
|
||||||
break;
|
break;
|
||||||
case STATE_TEXTURE_MATRIX:
|
case STATE_TEXTURE_MATRIX:
|
||||||
append(dst, "texture");
|
append(dst, "matrix.texture");
|
||||||
break;
|
break;
|
||||||
case STATE_PROGRAM_MATRIX:
|
case STATE_PROGRAM_MATRIX:
|
||||||
append(dst, "program");
|
append(dst, "matrix.program");
|
||||||
break;
|
break;
|
||||||
case STATE_MATRIX_INVERSE:
|
case STATE_MATRIX_INVERSE:
|
||||||
append(dst, ".inverse");
|
append(dst, ".inverse");
|
||||||
@@ -579,22 +589,22 @@ append_token(char *dst, gl_state_index k)
|
|||||||
append(dst, ".invtrans");
|
append(dst, ".invtrans");
|
||||||
break;
|
break;
|
||||||
case STATE_AMBIENT:
|
case STATE_AMBIENT:
|
||||||
append(dst, "ambient");
|
append(dst, ".ambient");
|
||||||
break;
|
break;
|
||||||
case STATE_DIFFUSE:
|
case STATE_DIFFUSE:
|
||||||
append(dst, "diffuse");
|
append(dst, ".diffuse");
|
||||||
break;
|
break;
|
||||||
case STATE_SPECULAR:
|
case STATE_SPECULAR:
|
||||||
append(dst, "specular");
|
append(dst, ".specular");
|
||||||
break;
|
break;
|
||||||
case STATE_EMISSION:
|
case STATE_EMISSION:
|
||||||
append(dst, "emission");
|
append(dst, ".emission");
|
||||||
break;
|
break;
|
||||||
case STATE_SHININESS:
|
case STATE_SHININESS:
|
||||||
append(dst, "shininess");
|
append(dst, "lshininess");
|
||||||
break;
|
break;
|
||||||
case STATE_HALF:
|
case STATE_HALF_VECTOR:
|
||||||
append(dst, "half");
|
append(dst, ".half");
|
||||||
break;
|
break;
|
||||||
case STATE_POSITION:
|
case STATE_POSITION:
|
||||||
append(dst, ".position");
|
append(dst, ".position");
|
||||||
@@ -605,6 +615,9 @@ append_token(char *dst, gl_state_index k)
|
|||||||
case STATE_SPOT_DIRECTION:
|
case STATE_SPOT_DIRECTION:
|
||||||
append(dst, ".spot.direction");
|
append(dst, ".spot.direction");
|
||||||
break;
|
break;
|
||||||
|
case STATE_SPOT_CUTOFF:
|
||||||
|
append(dst, ".spot.cutoff");
|
||||||
|
break;
|
||||||
case STATE_TEXGEN_EYE_S:
|
case STATE_TEXGEN_EYE_S:
|
||||||
append(dst, "eye.s");
|
append(dst, "eye.s");
|
||||||
break;
|
break;
|
||||||
@@ -644,8 +657,10 @@ append_token(char *dst, gl_state_index k)
|
|||||||
case STATE_LOCAL:
|
case STATE_LOCAL:
|
||||||
append(dst, "local");
|
append(dst, "local");
|
||||||
break;
|
break;
|
||||||
case STATE_INTERNAL:
|
|
||||||
case STATE_NORMAL_SCALE:
|
case STATE_NORMAL_SCALE:
|
||||||
|
append(dst, "normalScale");
|
||||||
|
break;
|
||||||
|
case STATE_INTERNAL:
|
||||||
case STATE_POSITION_NORMALIZED:
|
case STATE_POSITION_NORMALIZED:
|
||||||
append(dst, "(internal)");
|
append(dst, "(internal)");
|
||||||
break;
|
break;
|
||||||
@@ -667,7 +682,7 @@ static void
|
|||||||
append_index(char *dst, GLint index)
|
append_index(char *dst, GLint index)
|
||||||
{
|
{
|
||||||
char s[20];
|
char s[20];
|
||||||
_mesa_sprintf(s, "[%d].", index);
|
_mesa_sprintf(s, "[%d]", index);
|
||||||
append(dst, s);
|
append(dst, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -691,7 +706,6 @@ _mesa_program_state_string(const GLint state[STATE_LENGTH])
|
|||||||
append_token(str, (gl_state_index) state[2]);
|
append_token(str, (gl_state_index) state[2]);
|
||||||
break;
|
break;
|
||||||
case STATE_LIGHT:
|
case STATE_LIGHT:
|
||||||
append(str, "light");
|
|
||||||
append_index(str, state[1]); /* light number [i]. */
|
append_index(str, state[1]); /* light number [i]. */
|
||||||
append_token(str, (gl_state_index) state[2]); /* coefficients */
|
append_token(str, (gl_state_index) state[2]); /* coefficients */
|
||||||
break;
|
break;
|
||||||
@@ -725,10 +739,10 @@ _mesa_program_state_string(const GLint state[STATE_LENGTH])
|
|||||||
break;
|
break;
|
||||||
case STATE_CLIPPLANE:
|
case STATE_CLIPPLANE:
|
||||||
append_index(str, state[1]); /* plane [i] */
|
append_index(str, state[1]); /* plane [i] */
|
||||||
append(str, "plane");
|
append(str, ".plane");
|
||||||
break;
|
break;
|
||||||
case STATE_POINT_SIZE:
|
case STATE_POINT:
|
||||||
case STATE_POINT_ATTENUATION:
|
append_token(str, state[1]);
|
||||||
break;
|
break;
|
||||||
case STATE_MODELVIEW_MATRIX:
|
case STATE_MODELVIEW_MATRIX:
|
||||||
case STATE_PROJECTION_MATRIX:
|
case STATE_PROJECTION_MATRIX:
|
||||||
@@ -746,8 +760,9 @@ _mesa_program_state_string(const GLint state[STATE_LENGTH])
|
|||||||
const GLuint firstRow = (GLuint) state[2];
|
const GLuint firstRow = (GLuint) state[2];
|
||||||
const GLuint lastRow = (GLuint) state[3];
|
const GLuint lastRow = (GLuint) state[3];
|
||||||
const gl_state_index modifier = (gl_state_index) state[4];
|
const gl_state_index modifier = (gl_state_index) state[4];
|
||||||
append_token(str, mat);
|
if (index ||
|
||||||
if (index)
|
mat == STATE_TEXTURE_MATRIX ||
|
||||||
|
mat == STATE_PROGRAM_MATRIX)
|
||||||
append_index(str, index);
|
append_index(str, index);
|
||||||
if (modifier)
|
if (modifier)
|
||||||
append_token(str, modifier);
|
append_token(str, modifier);
|
||||||
|
@@ -60,6 +60,7 @@ typedef enum gl_state_index_ {
|
|||||||
|
|
||||||
STATE_CLIPPLANE,
|
STATE_CLIPPLANE,
|
||||||
|
|
||||||
|
STATE_POINT,
|
||||||
STATE_POINT_SIZE,
|
STATE_POINT_SIZE,
|
||||||
STATE_POINT_ATTENUATION,
|
STATE_POINT_ATTENUATION,
|
||||||
|
|
||||||
@@ -77,11 +78,12 @@ typedef enum gl_state_index_ {
|
|||||||
STATE_SPECULAR,
|
STATE_SPECULAR,
|
||||||
STATE_EMISSION,
|
STATE_EMISSION,
|
||||||
STATE_SHININESS,
|
STATE_SHININESS,
|
||||||
STATE_HALF,
|
STATE_HALF_VECTOR,
|
||||||
|
|
||||||
STATE_POSITION,
|
STATE_POSITION,
|
||||||
STATE_ATTENUATION,
|
STATE_ATTENUATION,
|
||||||
STATE_SPOT_DIRECTION,
|
STATE_SPOT_DIRECTION,
|
||||||
|
STATE_SPOT_CUTOFF,
|
||||||
|
|
||||||
STATE_TEXGEN_EYE_S,
|
STATE_TEXGEN_EYE_S,
|
||||||
STATE_TEXGEN_EYE_T,
|
STATE_TEXGEN_EYE_T,
|
||||||
|
@@ -946,7 +946,7 @@ static void build_lighting( struct tnl_program *p )
|
|||||||
*/
|
*/
|
||||||
VPpli = register_param3(p, STATE_LIGHT, i,
|
VPpli = register_param3(p, STATE_LIGHT, i,
|
||||||
STATE_POSITION_NORMALIZED);
|
STATE_POSITION_NORMALIZED);
|
||||||
half = register_param3(p, STATE_LIGHT, i, STATE_HALF);
|
half = register_param3(p, STATE_LIGHT, i, STATE_HALF_VECTOR);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
struct ureg Ppli = register_param3(p, STATE_LIGHT, i,
|
struct ureg Ppli = register_param3(p, STATE_LIGHT, i,
|
||||||
@@ -1328,8 +1328,8 @@ static void build_texture_transform( struct tnl_program *p )
|
|||||||
static void build_pointsize( struct tnl_program *p )
|
static void build_pointsize( struct tnl_program *p )
|
||||||
{
|
{
|
||||||
struct ureg eye = get_eye_position(p);
|
struct ureg eye = get_eye_position(p);
|
||||||
struct ureg state_size = register_param1(p, STATE_POINT_SIZE);
|
struct ureg state_size = register_param2(p, STATE_POINT, STATE_POINT_SIZE);
|
||||||
struct ureg state_attenuation = register_param1(p, STATE_POINT_ATTENUATION);
|
struct ureg state_attenuation = register_param2(p, STATE_POINT, STATE_POINT_ATTENUATION);
|
||||||
struct ureg out = register_output(p, VERT_RESULT_PSIZ);
|
struct ureg out = register_output(p, VERT_RESULT_PSIZ);
|
||||||
struct ureg ut = get_temp(p);
|
struct ureg ut = get_temp(p);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user