Home | History | Annotate | Download | only in gpu
      1 
      2 /*
      3  * Copyright 2011 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 
     10 #include "GrResource.h"
     11 #include "GrGpu.h"
     12 
     13 GrResource::GrResource(GrGpu* gpu, bool isWrapped) {
     14     fGpu              = gpu;
     15     fCacheEntry       = NULL;
     16     fDeferredRefCount = 0;
     17     if (isWrapped) {
     18         fFlags = kWrapped_FlagBit;
     19     } else {
     20         fFlags = 0;
     21     }
     22     fGpu->insertResource(this);
     23 }
     24 
     25 GrResource::~GrResource() {
     26     // subclass should have released this.
     27     SkASSERT(0 == fDeferredRefCount);
     28     SkASSERT(!this->isValid());
     29 }
     30 
     31 void GrResource::release() {
     32     if (NULL != fGpu) {
     33         this->onRelease();
     34         fGpu->removeResource(this);
     35         fGpu = NULL;
     36     }
     37 }
     38 
     39 void GrResource::abandon() {
     40     if (NULL != fGpu) {
     41         this->onAbandon();
     42         fGpu->removeResource(this);
     43         fGpu = NULL;
     44     }
     45 }
     46 
     47 const GrContext* GrResource::getContext() const {
     48     if (NULL != fGpu) {
     49         return fGpu->getContext();
     50     } else {
     51         return NULL;
     52     }
     53 }
     54 
     55 GrContext* GrResource::getContext() {
     56     if (NULL != fGpu) {
     57         return fGpu->getContext();
     58     } else {
     59         return NULL;
     60     }
     61 }
     62