Line data Source code
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 GrGLSemaphore_DEFINED
9 : #define GrGLSemaphore_DEFINED
10 :
11 : #include "GrSemaphore.h"
12 :
13 : #include "GrGLGpu.h"
14 :
15 : class GrGLSemaphore : public GrSemaphore {
16 : public:
17 0 : static sk_sp<GrGLSemaphore> Make(const GrGLGpu* gpu) {
18 0 : return sk_sp<GrGLSemaphore>(new GrGLSemaphore(gpu));
19 : }
20 :
21 0 : ~GrGLSemaphore() override {
22 0 : if (fGpu) {
23 0 : static_cast<const GrGLGpu*>(fGpu)->deleteSync(fSync);
24 : }
25 0 : }
26 :
27 0 : GrGLsync sync() const { return fSync; }
28 0 : void setSync(const GrGLsync& sync) { fSync = sync; }
29 :
30 : private:
31 0 : GrGLSemaphore(const GrGLGpu* gpu) : INHERITED(gpu), fSync(0) {}
32 :
33 : GrGLsync fSync;
34 :
35 : typedef GrSemaphore INHERITED;
36 : };
37 :
38 : #endif
|