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