| /* |
| * Copyright 2020 Google LLC |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "src/gpu/ganesh/d3d/GrD3DSemaphore.h" |
| |
| #include "src/gpu/ganesh/d3d/GrD3DGpu.h" |
| |
| |
| std::unique_ptr<GrD3DSemaphore> GrD3DSemaphore::Make(GrD3DGpu* gpu) { |
| GrD3DFenceInfo fenceInfo; |
| gpu->device()->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&fenceInfo.fFence)); |
| fenceInfo.fValue = 1; |
| |
| return std::unique_ptr<GrD3DSemaphore>(new GrD3DSemaphore(fenceInfo)); |
| } |
| |
| std::unique_ptr<GrD3DSemaphore> GrD3DSemaphore::MakeWrapped(const GrD3DFenceInfo& fenceInfo) { |
| return std::unique_ptr<GrD3DSemaphore>(new GrD3DSemaphore(fenceInfo)); |
| } |
| |
| GrD3DSemaphore::GrD3DSemaphore(const GrD3DFenceInfo& fenceInfo) : fFenceInfo(fenceInfo) {} |
| |
| GrBackendSemaphore GrD3DSemaphore::backendSemaphore() const { |
| GrBackendSemaphore backendSemaphore; |
| backendSemaphore.initDirect3D(fFenceInfo); |
| return backendSemaphore; |
| } |