// // Copyright 2019 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. // // Semaphore.h: Implements the gl::Semaphore class [EXT_external_objects] #include "libANGLE/Semaphore.h" #include "common/angleutils.h" #include "libANGLE/renderer/GLImplFactory.h" #include "libANGLE/renderer/SemaphoreImpl.h" namespace gl { Semaphore::Semaphore(rx::GLImplFactory *factory, SemaphoreID id) : RefCountObject(factory->generateSerial(), id), mImplementation(factory->createSemaphore()) {} Semaphore::~Semaphore() {} void Semaphore::onDestroy(const Context *context) { mImplementation->onDestroy(context); } angle::Result Semaphore::importFd(Context *context, HandleType handleType, GLint fd) { return mImplementation->importFd(context, handleType, fd); } angle::Result Semaphore::importZirconHandle(Context *context, HandleType handleType, GLuint handle) { return mImplementation->importZirconHandle(context, handleType, handle); } angle::Result Semaphore::wait(Context *context, const BufferBarrierVector &bufferBarriers, const TextureBarrierVector &textureBarriers) { return mImplementation->wait(context, bufferBarriers, textureBarriers); } angle::Result Semaphore::signal(Context *context, const BufferBarrierVector &bufferBarriers, const TextureBarrierVector &textureBarriers) { return mImplementation->signal(context, bufferBarriers, textureBarriers); } } // namespace gl