Replace parameter_type enum in program.[ch], use register_file enums instead.

This commit is contained in:
Brian Paul
2005-11-05 02:15:21 +00:00
parent 4d0b7618cb
commit 613e1ad5d5
4 changed files with 28 additions and 34 deletions

View File

@@ -1723,20 +1723,23 @@ struct atifs_machine
/** /**
* Names of the various vertex/fragment register files * Names of the various vertex/fragment program register files, etc.
* NOTE: first four tokens must fit into 2 bits (see t_vb_arbprogram.c)
* All values should fit in a 4-bit field.
*/ */
enum register_file enum register_file
{ {
PROGRAM_TEMPORARY, PROGRAM_TEMPORARY = 0,
PROGRAM_INPUT, PROGRAM_LOCAL_PARAM = 1,
PROGRAM_OUTPUT, PROGRAM_ENV_PARAM = 2,
PROGRAM_LOCAL_PARAM, PROGRAM_STATE_VAR = 3,
PROGRAM_ENV_PARAM, PROGRAM_INPUT = 4,
PROGRAM_NAMED_PARAM, PROGRAM_OUTPUT = 5,
PROGRAM_STATE_VAR, PROGRAM_NAMED_PARAM = 6,
PROGRAM_WRITE_ONLY, PROGRAM_CONSTANT = 7,
PROGRAM_ADDRESS, PROGRAM_WRITE_ONLY = 8,
PROGRAM_UNDEFINED /* invalid value */ PROGRAM_ADDRESS = 9,
PROGRAM_UNDEFINED = 15 /* invalid value */
}; };

View File

@@ -1582,7 +1582,7 @@ PrintSrcReg(const struct fragment_program *program,
_mesa_printf("-"); _mesa_printf("-");
} }
if (src->File == PROGRAM_NAMED_PARAM) { if (src->File == PROGRAM_NAMED_PARAM) {
if (program->Parameters->Parameters[src->Index].Type == CONSTANT) { if (program->Parameters->Parameters[src->Index].Type == PROGRAM_CONSTANT) {
_mesa_printf("{%g, %g, %g, %g}", _mesa_printf("{%g, %g, %g, %g}",
program->Parameters->ParameterValues[src->Index][0], program->Parameters->ParameterValues[src->Index][0],
program->Parameters->ParameterValues[src->Index][1], program->Parameters->ParameterValues[src->Index][1],
@@ -1591,7 +1591,7 @@ PrintSrcReg(const struct fragment_program *program,
} }
else { else {
ASSERT(program->Parameters->Parameters[src->Index].Type ASSERT(program->Parameters->Parameters[src->Index].Type
== NAMED_PARAMETER); == PROGRAM_NAMED_PARAM);
_mesa_printf("%s", program->Parameters->Parameters[src->Index].Name); _mesa_printf("%s", program->Parameters->Parameters[src->Index].Name);
} }
} }

View File

@@ -388,7 +388,7 @@ _mesa_free_parameters(struct program_parameter_list *paramList)
static GLint static GLint
add_parameter(struct program_parameter_list *paramList, add_parameter(struct program_parameter_list *paramList,
const char *name, const GLfloat values[4], const char *name, const GLfloat values[4],
enum parameter_type type) enum register_file type)
{ {
const GLuint n = paramList->NumParameters; const GLuint n = paramList->NumParameters;
@@ -443,7 +443,7 @@ GLint
_mesa_add_named_parameter(struct program_parameter_list *paramList, _mesa_add_named_parameter(struct program_parameter_list *paramList,
const char *name, const GLfloat values[4]) const char *name, const GLfloat values[4])
{ {
return add_parameter(paramList, name, values, NAMED_PARAMETER); return add_parameter(paramList, name, values, PROGRAM_NAMED_PARAM);
} }
@@ -457,7 +457,7 @@ GLint
_mesa_add_named_constant(struct program_parameter_list *paramList, _mesa_add_named_constant(struct program_parameter_list *paramList,
const char *name, const GLfloat values[4]) const char *name, const GLfloat values[4])
{ {
return add_parameter(paramList, name, values, CONSTANT); return add_parameter(paramList, name, values, PROGRAM_CONSTANT);
} }
@@ -471,7 +471,7 @@ GLint
_mesa_add_unnamed_constant(struct program_parameter_list *paramList, _mesa_add_unnamed_constant(struct program_parameter_list *paramList,
const GLfloat values[4]) const GLfloat values[4])
{ {
return add_parameter(paramList, NULL, values, CONSTANT); return add_parameter(paramList, NULL, values, PROGRAM_CONSTANT);
} }
@@ -491,7 +491,7 @@ _mesa_add_state_reference(struct program_parameter_list *paramList,
*/ */
GLint index; GLint index;
index = add_parameter(paramList, NULL, NULL, STATE); index = add_parameter(paramList, NULL, NULL, PROGRAM_STATE_VAR);
if (index >= 0) { if (index >= 0) {
GLuint i; GLuint i;
for (i = 0; i < 6; i++) for (i = 0; i < 6; i++)
@@ -953,7 +953,7 @@ _mesa_load_state_parameters(GLcontext *ctx,
return; return;
for (i = 0; i < paramList->NumParameters; i++) { for (i = 0; i < paramList->NumParameters; i++) {
if (paramList->Parameters[i].Type == STATE) { if (paramList->Parameters[i].Type == PROGRAM_STATE_VAR) {
_mesa_fetch_state(ctx, _mesa_fetch_state(ctx,
paramList->Parameters[i].StateIndexes, paramList->Parameters[i].StateIndexes,
paramList->ParameterValues[i]); paramList->ParameterValues[i]);

View File

@@ -190,35 +190,26 @@ enum state_index {
/* /**
* Named program parameters * Named program parameters
* Used for NV_fragment_program "DEFINE"d constants and "DECLARE"d parameters, * Used for NV_fragment_program "DEFINE"d constants and "DECLARE"d parameters,
* and ARB_fragment_program global state references. For the later, Name * and ARB_fragment_program global state references. For the later, Name
* might be "state.light[0].diffuse", for example. * might be "state.light[0].diffuse", for example.
*/ */
enum parameter_type
{
NAMED_PARAMETER,
CONSTANT,
STATE
};
struct program_parameter struct program_parameter
{ {
const char *Name; /* Null-terminated */ const char *Name; /* Null-terminated */
enum parameter_type Type; enum register_file Type; /** PROGRAM_NAMED_PARAM, CONSTANT or STATE_VAR */
enum state_index StateIndexes[6]; /* Global state reference */ enum state_index StateIndexes[6]; /* Global state reference */
}; };
struct program_parameter_list struct program_parameter_list
{ {
GLuint Size; GLuint Size; /** allocated size of Parameters, ParameterValues */
GLuint NumParameters; GLuint NumParameters; /** number of parameters in arrays */
struct program_parameter *Parameters; struct program_parameter *Parameters; /** Array [Size] */
GLfloat (*ParameterValues)[4]; GLfloat (*ParameterValues)[4]; /** Array [Size] */
}; };