| Index: cc/resources/sync_point_helper.cc
|
| diff --git a/cc/resources/sync_point_helper.cc b/cc/resources/sync_point_helper.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c398eb6761d43d08db56f943c7058f76ebab3382
|
| --- /dev/null
|
| +++ b/cc/resources/sync_point_helper.cc
|
| @@ -0,0 +1,37 @@
|
| +// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "cc/resources/sync_point_helper.h"
|
| +
|
| +#include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h"
|
| +
|
| +namespace cc {
|
| +
|
| +class SignalSyncPointCallbackClass
|
| + : public WebKit::WebGraphicsContext3D::WebGraphicsSyncPointCallback {
|
| + public:
|
| + explicit SignalSyncPointCallbackClass(const base::Closure& closure)
|
| + : closure_(closure) {}
|
| +
|
| + virtual void onSyncPointReached() {
|
| + if (!closure_.is_null())
|
| + closure_.Run();
|
| + }
|
| +
|
| + private:
|
| + base::Closure closure_;
|
| +};
|
| +
|
| +void SyncPointHelper::SignalSyncPoint(
|
| + WebKit::WebGraphicsContext3D* context3d,
|
| + unsigned sync_point,
|
| + const base::Closure& closure) {
|
| + SignalSyncPointCallbackClass* callback_class =
|
| + new SignalSyncPointCallbackClass(closure);
|
| +
|
| + // Pass ownership of the CallbackClass to WebGraphicsContext3D.
|
| + context3d->signalSyncPoint(sync_point, callback_class);
|
| +}
|
| +
|
| +} // namespace cc
|
|
|