/src/skia/src/gpu/GrSemaphore.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright 2017 Google Inc. |
3 | | * |
4 | | * Use of this source code is governed by a BSD-style license that can be |
5 | | * found in the LICENSE file. |
6 | | */ |
7 | | |
8 | | #ifndef GrSemaphore_DEFINED |
9 | | #define GrSemaphore_DEFINED |
10 | | |
11 | | #include "include/gpu/GrBackendSemaphore.h" |
12 | | |
13 | | /** |
14 | | * Represents a semaphore-like GPU synchronization object. |
15 | | */ |
16 | | class GrSemaphore { |
17 | | public: |
18 | 0 | virtual ~GrSemaphore() {} |
19 | | |
20 | | // The derived class can return its GrBackendSemaphore. This is used when flushing with signal |
21 | | // semaphores so we can set the client's GrBackendSemaphore object after we've created the |
22 | | // internal semaphore. |
23 | | virtual GrBackendSemaphore backendSemaphore() const = 0; |
24 | | |
25 | | private: |
26 | | friend class GrGpu; // for setIsOwned |
27 | | // This is only used in GrGpu to handle the case where we created a semaphore that was meant to |
28 | | // be borrowed, but we failed to submit it. So we must go back and switch the semaphore to owned |
29 | | // so that it gets deleted. |
30 | | virtual void setIsOwned() = 0; |
31 | | }; |
32 | | |
33 | | #endif |