/* * Copyright 2020 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrMtlSemaphore_DEFINED #define GrMtlSemaphore_DEFINED #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/d3d/GrD3DTypes.h" #include "include/private/GrTypesPriv.h" #include "src/gpu/GrSemaphore.h" class GrD3DGpu; class GrD3DSemaphore : public GrSemaphore { public: static std::unique_ptr Make(GrD3DGpu* gpu); static std::unique_ptr MakeWrapped(const GrD3DFenceInfo&); ~GrD3DSemaphore() override {} ID3D12Fence* fence() const { return fFenceInfo.fFence.get(); } uint64_t value() const { return fFenceInfo.fValue; } GrBackendSemaphore backendSemaphore() const override; private: GrD3DSemaphore(const GrD3DFenceInfo&); void setIsOwned() override {} GrD3DFenceInfo fFenceInfo; using INHERITED = GrSemaphore; }; #endif