Edit

kc3-lang/angle/src/libANGLE/RefCountObject.cpp

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2015-04-01 14:17:07
    Hash : c30c424f
    Message : Make egl::Surface ref-counted. This will let us store references to Surface in FBO attachments, even after the surface is destroyed. BUG=angleproject:963 Change-Id: I7e1cb161d1e08f78b1c4d730a32ad09ac7e61e30 Reviewed-on: https://chromium-review.googlesource.com/263482 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>

  • src/libANGLE/RefCountObject.cpp
  • //
    // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    // RefCountObject.cpp: Defines the gl::RefCountObject base class that provides
    // lifecycle support for GL objects using the traditional BindObject scheme, but
    // that need to be reference counted for correct cross-context deletion.
    // (Concretely, textures, buffers and renderbuffers.)
    
    #include "RefCountObject.h"
    
    RefCountObject::RefCountObject(GLuint id)
        : mId(id),
          mRefCount(0)
    {
    }
    
    RefCountObject::~RefCountObject()
    {
        ASSERT(mRefCount == 0);
    }
    
    void RefCountObject::addRef() const
    {
        mRefCount++;
    }
    
    void RefCountObject::release() const
    {
        ASSERT(mRefCount > 0);
    
        if (--mRefCount == 0)
        {
            delete this;
        }
    }