15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright 2012 Google Inc. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "GrProgramObj.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "GrShaderObj.h" 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void GrProgramObj::AttachShader(GrShaderObj *shader) { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shader->ref(); 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fShaders.push_back(shader); 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void GrProgramObj::deleteAction() { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // shaders are automatically detached from a deleted program. They will only be 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // deleted if they were marked for deletion by a prior call to glDeleteShader 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (int i = 0; i < fShaders.count(); ++i) { 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) fShaders[i]->unref(); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fShaders.reset(); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this->INHERITED::deleteAction(); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)