| // |
| // 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 |