Lines Matching refs:shProg

239  * Set ptr to point to shProg.
242 * Then set ptr to point to shProg, incrementing its refcount.
247 struct gl_shader_program *shProg)
250 if (*ptr == shProg) {
272 if (shProg) {
273 p_atomic_inc(&shProg->RefCount);
274 *ptr = shProg;
315 struct gl_shader_program *shProg;
316 shProg = rzalloc(NULL, struct gl_shader_program);
317 if (shProg) {
318 shProg->Name = name;
319 shProg->data = _mesa_create_shader_program_data();
320 if (!shProg->data) {
321 ralloc_free(shProg);
324 init_shader_program(shProg);
326 return shProg;
335 struct gl_shader_program *shProg)
338 if (shProg->_LinkedShaders[sh] != NULL) {
339 _mesa_delete_linked_shader(ctx, shProg->_LinkedShaders[sh]);
340 shProg->_LinkedShaders[sh] = NULL;
344 if (shProg->UniformRemapTable) {
345 ralloc_free(shProg->UniformRemapTable);
346 shProg->NumUniformRemapTable = 0;
347 shProg->UniformRemapTable = NULL;
350 if (shProg->UniformHash) {
351 string_to_uint_map_dtor(shProg->UniformHash);
352 shProg->UniformHash = NULL;
355 if (shProg->data)
356 _mesa_program_resource_hash_destroy(shProg);
358 _mesa_reference_shader_program_data(&shProg->data, NULL);
369 struct gl_shader_program *shProg)
373 assert(shProg->Type == GL_SHADER_PROGRAM_MESA);
375 _mesa_clear_shader_program_data(ctx, shProg);
377 if (shProg->AttributeBindings) {
378 string_to_uint_map_dtor(shProg->AttributeBindings);
379 shProg->AttributeBindings = NULL;
382 if (shProg->FragDataBindings) {
383 string_to_uint_map_dtor(shProg->FragDataBindings);
384 shProg->FragDataBindings = NULL;
387 if (shProg->FragDataIndexBindings) {
388 string_to_uint_map_dtor(shProg->FragDataIndexBindings);
389 shProg->FragDataIndexBindings = NULL;
393 for (i = 0; i < shProg->NumShaders; i++) {
394 _reference_shader(ctx, &shProg->Shaders[i], NULL, true);
396 shProg->NumShaders = 0;
398 free(shProg->Shaders);
399 shProg->Shaders = NULL;
402 for (i = 0; i < shProg->TransformFeedback.NumVarying; i++) {
403 free(shProg->TransformFeedback.VaryingNames[i]);
405 free(shProg->TransformFeedback.VaryingNames);
406 shProg->TransformFeedback.VaryingNames = NULL;
407 shProg->TransformFeedback.NumVarying = 0;
409 free(shProg->Label);
410 shProg->Label = NULL;
419 struct gl_shader_program *shProg)
421 _mesa_free_shader_program_data(ctx, shProg);
422 ralloc_free(shProg);
432 struct gl_shader_program *shProg;
434 shProg = (struct gl_shader_program *)
440 if (shProg && shProg->Type != GL_SHADER_PROGRAM_MESA) {
443 return shProg;
461 struct gl_shader_program *shProg = (struct gl_shader_program *)
463 if (!shProg) {
468 if (shProg->Type != GL_SHADER_PROGRAM_MESA) {
473 return shProg;