diff options
author | Timothy Arceri <[email protected]> | 2018-03-13 20:47:48 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2018-03-20 14:17:34 +1100 |
commit | 57ebab64c0dd1abd646f4f274d01f19c8e0e7293 (patch) | |
tree | 0412e2aef6003cec14e41b23822767e7f8d8ead9 /src/mesa/program | |
parent | 23777543290b9dfa17bfecb5b389ad3fc8e75820 (diff) |
mesa: add _mesa_add_sized_state_reference() helper
This will be used for adding packed builtin uniforms.
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa/program')
-rw-r--r-- | src/mesa/program/prog_parameter.c | 36 | ||||
-rw-r--r-- | src/mesa/program/prog_parameter.h | 5 |
2 files changed, 27 insertions, 14 deletions
diff --git a/src/mesa/program/prog_parameter.c b/src/mesa/program/prog_parameter.c index af9bb37cd5c..88821cfba16 100644 --- a/src/mesa/program/prog_parameter.c +++ b/src/mesa/program/prog_parameter.c @@ -362,21 +362,11 @@ _mesa_add_typed_unnamed_constant(struct gl_program_parameter_list *paramList, return pos; } - -/** - * Add a new state reference to the parameter list. - * This will be used when the program contains something like this: - * PARAM ambient = state.material.front.ambient; - * - * \param paramList the parameter list - * \param stateTokens an array of 5 (STATE_LENGTH) state tokens - * \return index of the new parameter. - */ GLint -_mesa_add_state_reference(struct gl_program_parameter_list *paramList, - const gl_state_index16 stateTokens[STATE_LENGTH]) +_mesa_add_sized_state_reference(struct gl_program_parameter_list *paramList, + const gl_state_index16 stateTokens[STATE_LENGTH], + const unsigned size, bool pad_and_align) { - const GLuint size = 4; /* XXX fix */ char *name; GLint index; @@ -391,7 +381,8 @@ _mesa_add_state_reference(struct gl_program_parameter_list *paramList, name = _mesa_program_state_string(stateTokens); index = _mesa_add_parameter(paramList, PROGRAM_STATE_VAR, name, - size, GL_NONE, NULL, stateTokens, true); + size, GL_NONE, NULL, stateTokens, + pad_and_align); paramList->StateFlags |= _mesa_program_state_flags(stateTokens); /* free name string here since we duplicated it in add_parameter() */ @@ -399,3 +390,20 @@ _mesa_add_state_reference(struct gl_program_parameter_list *paramList, return index; } + + +/** + * Add a new state reference to the parameter list. + * This will be used when the program contains something like this: + * PARAM ambient = state.material.front.ambient; + * + * \param paramList the parameter list + * \param stateTokens an array of 5 (STATE_LENGTH) state tokens + * \return index of the new parameter. + */ +GLint +_mesa_add_state_reference(struct gl_program_parameter_list *paramList, + const gl_state_index16 stateTokens[STATE_LENGTH]) +{ + return _mesa_add_sized_state_reference(paramList, stateTokens, 4, true); +} diff --git a/src/mesa/program/prog_parameter.h b/src/mesa/program/prog_parameter.h index 83eb0c5613a..8e36a1c5904 100644 --- a/src/mesa/program/prog_parameter.h +++ b/src/mesa/program/prog_parameter.h @@ -128,6 +128,11 @@ _mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList, } extern GLint +_mesa_add_sized_state_reference(struct gl_program_parameter_list *paramList, + const gl_state_index16 stateTokens[STATE_LENGTH], + const unsigned size, bool pad_and_align); + +extern GLint _mesa_add_state_reference(struct gl_program_parameter_list *paramList, const gl_state_index16 stateTokens[]); |