Home | History | Annotate | Download | only in resources
      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