123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef GrSemaphore_DEFINED
- #define GrSemaphore_DEFINED
- #include "include/gpu/GrBackendSemaphore.h"
- #include "include/gpu/GrGpuResource.h"
- /**
- * Represents a semaphore-like GPU synchronization object. This is a slightly odd fit for
- * GrGpuResource because we don't care about budgeting, recycling, or read/write references for
- * these. However, making it a GrGpuResource makes it simpler to handle releasing/abandoning these
- * along with other resources. If more cases like this arise we could consider moving some of the
- * unused functionality off of GrGpuResource.
- */
- class GrSemaphore : public GrGpuResource {
- public:
- // The derived class can return its GrBackendSemaphore. This is used when flushing with signal
- // semaphores so we can set the client's GrBackendSemaphore object after we've created the
- // internal semaphore.
- virtual GrBackendSemaphore backendSemaphore() const = 0;
- const char* getResourceType() const override { return "semaphore"; }
- protected:
- explicit GrSemaphore(GrGpu* gpu) : INHERITED(gpu) {}
- private:
- size_t onGpuMemorySize() const override { return 0; }
- typedef GrGpuResource INHERITED;
- };
- #endif
|