#ifndef PROG_STATEVARS_H
#define PROG_STATEVARS_H
#include "main/glheader.h"
#include "compiler/shader_enums.h"
#ifdef __cplusplus
extern "C" {
#endif
struct gl_context;
struct gl_program_parameter_list;
typedef enum gl_state_index_ {
STATE_MATERIAL = 100,
STATE_LIGHT,
STATE_LIGHTMODEL_AMBIENT,
STATE_LIGHTMODEL_SCENECOLOR,
STATE_LIGHTPROD,
STATE_TEXGEN,
STATE_FOG_COLOR,
STATE_FOG_PARAMS,
STATE_CLIPPLANE,
STATE_POINT_SIZE,
STATE_POINT_ATTENUATION,
STATE_MODELVIEW_MATRIX,
STATE_PROJECTION_MATRIX,
STATE_MVP_MATRIX,
STATE_TEXTURE_MATRIX,
STATE_PROGRAM_MATRIX,
STATE_MATRIX_INVERSE,
STATE_MATRIX_TRANSPOSE,
STATE_MATRIX_INVTRANS,
STATE_AMBIENT,
STATE_DIFFUSE,
STATE_SPECULAR,
STATE_EMISSION,
STATE_SHININESS,
STATE_HALF_VECTOR,
STATE_POSITION,
STATE_ATTENUATION,
STATE_SPOT_DIRECTION,
STATE_SPOT_CUTOFF,
STATE_TEXGEN_EYE_S,
STATE_TEXGEN_EYE_T,
STATE_TEXGEN_EYE_R,
STATE_TEXGEN_EYE_Q,
STATE_TEXGEN_OBJECT_S,
STATE_TEXGEN_OBJECT_T,
STATE_TEXGEN_OBJECT_R,
STATE_TEXGEN_OBJECT_Q,
STATE_TEXENV_COLOR,
STATE_NUM_SAMPLES,
STATE_DEPTH_RANGE,
STATE_VERTEX_PROGRAM,
STATE_FRAGMENT_PROGRAM,
STATE_ENV,
STATE_LOCAL,
STATE_INTERNAL,
STATE_CURRENT_ATTRIB,
STATE_CURRENT_ATTRIB_MAYBE_VP_CLAMPED,
STATE_NORMAL_SCALE,
STATE_FOG_PARAMS_OPTIMIZED,
STATE_POINT_SIZE_CLAMPED,
STATE_LIGHT_SPOT_DIR_NORMALIZED,
STATE_LIGHT_POSITION,
STATE_LIGHT_POSITION_NORMALIZED,
STATE_LIGHT_HALF_VECTOR,
STATE_PT_SCALE,
STATE_PT_BIAS,
STATE_FB_SIZE,
STATE_FB_WPOS_Y_TRANSFORM,
STATE_TCS_PATCH_VERTICES_IN,
STATE_TES_PATCH_VERTICES_IN,
STATE_ADVANCED_BLENDING_MODE,
STATE_ALPHA_REF,
STATE_CLIP_INTERNAL,
STATE_INTERNAL_DRIVER
} gl_state_index;
extern void
_mesa_load_state_parameters(struct gl_context *ctx,
struct gl_program_parameter_list *paramList);
extern GLbitfield
_mesa_program_state_flags(const gl_state_index16 state[STATE_LENGTH]);
extern char *
_mesa_program_state_string(const gl_state_index16 state[STATE_LENGTH]);
#ifdef __cplusplus
}
#endif
#endif