Lines Matching refs:shProg

233  * Set ptr to point to shProg.
236 * Then set ptr to point to shProg, incrementing its refcount.
241 struct gl_shader_program *shProg)
244 if (*ptr == shProg) {
264 if (shProg) {
265 p_atomic_inc(&shProg->RefCount);
266 *ptr = shProg;
307 struct gl_shader_program *shProg;
308 shProg = rzalloc(NULL, struct gl_shader_program);
309 if (shProg) {
310 shProg->Name = name;
311 shProg->data = _mesa_create_shader_program_data();
312 if (!shProg->data) {
313 ralloc_free(shProg);
316 init_shader_program(shProg);
318 return shProg;
327 struct gl_shader_program *shProg)
330 if (shProg->_LinkedShaders[sh] != NULL) {
331 _mesa_delete_linked_shader(ctx, shProg->_LinkedShaders[sh]);
332 shProg->_LinkedShaders[sh] = NULL;
336 if (shProg->UniformRemapTable) {
337 ralloc_free(shProg->UniformRemapTable);
338 shProg->NumUniformRemapTable = 0;
339 shProg->UniformRemapTable = NULL;
342 if (shProg->UniformHash) {
343 string_to_uint_map_dtor(shProg->UniformHash);
344 shProg->UniformHash = NULL;
347 _mesa_reference_shader_program_data(ctx, &shProg->data, NULL);
357 struct gl_shader_program *shProg)
361 assert(shProg->Type == GL_SHADER_PROGRAM_MESA);
363 _mesa_clear_shader_program_data(ctx, shProg);
365 if (shProg->AttributeBindings) {
366 string_to_uint_map_dtor(shProg->AttributeBindings);
367 shProg->AttributeBindings = NULL;
370 if (shProg->FragDataBindings) {
371 string_to_uint_map_dtor(shProg->FragDataBindings);
372 shProg->FragDataBindings = NULL;
375 if (shProg->FragDataIndexBindings) {
376 string_to_uint_map_dtor(shProg->FragDataIndexBindings);
377 shProg->FragDataIndexBindings = NULL;
381 for (i = 0; i < shProg->NumShaders; i++) {
382 _mesa_reference_shader(ctx, &shProg->Shaders[i], NULL);
384 shProg->NumShaders = 0;
386 free(shProg->Shaders);
387 shProg->Shaders = NULL;
390 for (i = 0; i < shProg->TransformFeedback.NumVarying; i++) {
391 free(shProg->TransformFeedback.VaryingNames[i]);
393 free(shProg->TransformFeedback.VaryingNames);
394 shProg->TransformFeedback.VaryingNames = NULL;
395 shProg->TransformFeedback.NumVarying = 0;
397 free(shProg->Label);
398 shProg->Label = NULL;
407 struct gl_shader_program *shProg)
409 _mesa_free_shader_program_data(ctx, shProg);
410 ralloc_free(shProg);
420 struct gl_shader_program *shProg;
422 shProg = (struct gl_shader_program *)
428 if (shProg && shProg->Type != GL_SHADER_PROGRAM_MESA) {
431 return shProg;
449 struct gl_shader_program *shProg = (struct gl_shader_program *)
451 if (!shProg) {
455 if (shProg->Type != GL_SHADER_PROGRAM_MESA) {
459 return shProg;