1 
2 /*
3  * Copyright 2012 Google Inc.
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 
9 #include "GrProgramObj.h"
10 #include "GrShaderObj.h"
11 
AttachShader(GrShaderObj * shader)12 void GrProgramObj::AttachShader(GrShaderObj *shader) {
13     shader->ref();
14     fShaders.push_back(shader);
15 }
16 
deleteAction()17 void GrProgramObj::deleteAction() {
18 
19     // shaders are automatically detached from a deleted program. They will only be
20     // deleted if they were marked for deletion by a prior call to glDeleteShader
21     for (int i = 0; i < fShaders.count(); ++i) {
22         fShaders[i]->unref();
23     }
24     fShaders.reset();
25 
26     this->INHERITED::deleteAction();
27 }
28