13724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 2dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com/* 3dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * Copyright 2012 Google Inc. 4dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * 5dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * Use of this source code is governed by a BSD-style license that can be 6dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com * found in the LICENSE file. 7dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com */ 8dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com 9dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com#include "GrProgramObj.h" 10dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com#include "GrShaderObj.h" 11dd743fefad9764ad86d7f69deec32e9a3b5de47frobertphillips@google.com 128137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.comvoid GrProgramObj::AttachShader(GrShaderObj *shader) { 138137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com shader->ref(); 148137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com fShaders.push_back(shader); 158137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com} 168137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com 178137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.comvoid GrProgramObj::deleteAction() { 188137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com 198137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com // shaders are automatically detached from a deleted program. They will only be 208137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com // deleted if they were marked for deletion by a prior call to glDeleteShader 218137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com for (int i = 0; i < fShaders.count(); ++i) { 228137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com fShaders[i]->unref(); 238137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com } 248137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com fShaders.reset(); 258137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com 268137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com this->INHERITED::deleteAction(); 278137fcfa7de5132d0358ace615f1e073fe48a7f2bsalomon@google.com} 28