1 2 /* 3 * Copyright 2015 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 #ifndef SkGpuFenceSync_DEFINED 9 #define SkGpuFenceSync_DEFINED 10 11 #include "SkTypes.h" 12 13 typedef void* SkPlatformGpuFence; 14 15 /* 16 * This class provides an interface to interact with fence syncs. A fence sync is an object that the 17 * client can insert into the GPU command stream, and then at any future time, wait until all 18 * commands that were issued before the fence have completed. 19 */ 20 class SkGpuFenceSync { 21 public: 22 virtual SkPlatformGpuFence SK_WARN_UNUSED_RESULT insertFence() const = 0; 23 virtual bool waitFence(SkPlatformGpuFence, bool flush) const = 0; 24 virtual void deleteFence(SkPlatformGpuFence) const = 0; 25 ~SkGpuFenceSync()26 virtual ~SkGpuFenceSync() {} 27 }; 28 29 #endif 30