mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
added _mesa_combine_parameter_lists()
This commit is contained in:
parent
449562cde0
commit
4b30d177b4
2 changed files with 43 additions and 0 deletions
|
|
@ -607,6 +607,39 @@ _mesa_clone_parameter_list(const struct gl_program_parameter_list *list)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a new parameter list which is listA + listB.
|
||||
*/
|
||||
struct gl_program_parameter_list *
|
||||
_mesa_combine_parameter_lists(const struct gl_program_parameter_list *listA,
|
||||
const struct gl_program_parameter_list *listB)
|
||||
{
|
||||
struct gl_program_parameter_list *list;
|
||||
|
||||
if (listA) {
|
||||
list = _mesa_clone_parameter_list(listA);
|
||||
if (list && listB) {
|
||||
GLuint i;
|
||||
for (i = 0; i < listB->NumParameters; i++) {
|
||||
struct gl_program_parameter *param = listB->Parameters + i;
|
||||
_mesa_add_parameter(list, param->Type, param->Name, param->Size,
|
||||
param->DataType,
|
||||
listB->ParameterValues[i],
|
||||
param->StateIndexes);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (listB) {
|
||||
list = _mesa_clone_parameter_list(listB);
|
||||
}
|
||||
else {
|
||||
list = NULL;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Find longest name of all uniform parameters in list.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -78,6 +78,16 @@ _mesa_free_parameter_list(struct gl_program_parameter_list *paramList);
|
|||
extern struct gl_program_parameter_list *
|
||||
_mesa_clone_parameter_list(const struct gl_program_parameter_list *list);
|
||||
|
||||
extern struct gl_program_parameter_list *
|
||||
_mesa_combine_parameter_lists(const struct gl_program_parameter_list *a,
|
||||
const struct gl_program_parameter_list *b);
|
||||
|
||||
static INLINE GLuint
|
||||
_mesa_num_parameters(const struct gl_program_parameter_list *list)
|
||||
{
|
||||
return list ? list->NumParameters : 0;
|
||||
}
|
||||
|
||||
extern GLint
|
||||
_mesa_add_parameter(struct gl_program_parameter_list *paramList,
|
||||
enum register_file type, const char *name,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue