Semaphore.cpp (1628B)
1 // 2 // Copyright 2019 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 // Semaphore.h: Implements the gl::Semaphore class [EXT_external_objects] 7 8 #include "libANGLE/Semaphore.h" 9 10 #include "common/angleutils.h" 11 #include "libANGLE/renderer/GLImplFactory.h" 12 #include "libANGLE/renderer/SemaphoreImpl.h" 13 14 namespace gl 15 { 16 17 Semaphore::Semaphore(rx::GLImplFactory *factory, SemaphoreID id) 18 : RefCountObject(factory->generateSerial(), id), mImplementation(factory->createSemaphore()) 19 {} 20 21 Semaphore::~Semaphore() {} 22 23 void Semaphore::onDestroy(const Context *context) 24 { 25 mImplementation->onDestroy(context); 26 } 27 28 angle::Result Semaphore::importFd(Context *context, HandleType handleType, GLint fd) 29 { 30 return mImplementation->importFd(context, handleType, fd); 31 } 32 33 angle::Result Semaphore::importZirconHandle(Context *context, HandleType handleType, GLuint handle) 34 { 35 return mImplementation->importZirconHandle(context, handleType, handle); 36 } 37 38 angle::Result Semaphore::wait(Context *context, 39 const BufferBarrierVector &bufferBarriers, 40 const TextureBarrierVector &textureBarriers) 41 { 42 return mImplementation->wait(context, bufferBarriers, textureBarriers); 43 } 44 45 angle::Result Semaphore::signal(Context *context, 46 const BufferBarrierVector &bufferBarriers, 47 const TextureBarrierVector &textureBarriers) 48 { 49 return mImplementation->signal(context, bufferBarriers, textureBarriers); 50 } 51 52 } // namespace gl