1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CC_RESOURCES_SYNC_POINT_HELPER_H_ 6 #define CC_RESOURCES_SYNC_POINT_HELPER_H_ 7 8 #include "base/callback.h" 9 #include "cc/base/cc_export.h" 10 11 namespace WebKit { class WebGraphicsContext3D; } 12 13 namespace cc { 14 15 class CC_EXPORT SyncPointHelper { 16 public: 17 // Requests a callback to |closure| when the |sync_point| is reached by the 18 // |context3d|. 19 // 20 // If the |context3d| is destroyed or lost before the callback fires, then 21 // AbortBecauseDidLoseOrDestroyContext() must be called to clean up the 22 // callback's resources. 23 static void SignalSyncPoint(WebKit::WebGraphicsContext3D* context3d, 24 unsigned sync_point, 25 const base::Closure& closure); 26 27 // Requests a callback to |closure| when the results for |query| is available. 28 // 29 // If the |context3d| is destroyed or lost before the callback fires, then 30 // AbortBecauseDidLoseOrDestroyContext() must be called to clean up the 31 // callback's resources. 32 static void SignalQuery(WebKit::WebGraphicsContext3D* context3d, 33 unsigned int query, 34 const base::Closure& closure); 35 36 private: 37 SyncPointHelper(); 38 39 DISALLOW_COPY_AND_ASSIGN(SyncPointHelper); 40 }; 41 42 } // namespace cc 43 44 #endif // CC_RESOURCES_SYNC_POINT_HELPER_H_ 45