/*
* Copyright 2017 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "GrGLSemaphore.h"
#include "GrGLGpu.h"
GrGLSemaphore::GrGLSemaphore(GrGLGpu* gpu, bool isOwned)
: INHERITED(gpu), fSync(0), fIsOwned(isOwned) {
isOwned ? this->registerWithCache(SkBudgeted::kNo)
: this->registerWithCacheWrapped(GrWrapCacheable::kNo);
}
void GrGLSemaphore::onRelease() {
if (fSync && fIsOwned) {
static_cast<const GrGLGpu*>(this->getGpu())->deleteSync(fSync);
}
fSync = 0;
INHERITED::onRelease();
}
void GrGLSemaphore::onAbandon() {
fSync = 0;
INHERITED::onAbandon();
}