*
* \sa gl_program::Attributes
*/
- struct gl_program_parameter_list *Attributes;
struct string_to_uint_map *AttributeBindings;
/** Transform feedback varyings */
return;
}
- /* this will replace the current value if it's already in the list */
- /* Add VERT_ATTRIB_GENERIC0 because that's how the linker differentiates
+ /* Replace the current value if it's already in the list. Add
+ * VERT_ATTRIB_GENERIC0 because that's how the linker differentiates
* between built-in attributes and user-defined attributes.
*/
shProg->AttributeBindings->put(index + VERT_ATTRIB_GENERIC0, name);
- i = _mesa_add_attribute(shProg->Attributes, name, size, datatype, index);
- if (i < 0) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBindAttribLocation");
- return;
- }
/*
* Note that this attribute binding won't go into effect until
{
prog->Type = GL_SHADER_PROGRAM_MESA;
prog->RefCount = 1;
- prog->Attributes = _mesa_new_parameter_list();
prog->AttributeBindings = string_to_uint_map_ctor();
_mesa_clear_shader_program_data(ctx, shProg);
- if (shProg->Attributes) {
- _mesa_free_parameter_list(shProg->Attributes);
- shProg->Attributes = NULL;
- }
-
if (shProg->AttributeBindings) {
string_to_uint_map_dtor(shProg->AttributeBindings);
shProg->AttributeBindings = NULL;