Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3602)

Unified Diff: cc/rate_limiter.h

Issue 11122003: [cc] Rename all cc/ filenames to Chromium style (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/quad_sink.h ('k') | cc/rate_limiter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/rate_limiter.h
diff --git a/cc/rate_limiter.h b/cc/rate_limiter.h
index 638cbb270ce9b24689d5095baf174ade4f4d1a13..7b48d742b7df083bd39ccea05986a54502097a2d 100644
--- a/cc/rate_limiter.h
+++ b/cc/rate_limiter.h
@@ -1,3 +1,53 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
+// Copyright 2011 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.
+
+#ifndef RateLimiter_h
+#define RateLimiter_h
+
+#if USE(ACCELERATED_COMPOSITING)
+
+#include "base/memory/ref_counted.h"
+
+namespace WebKit {
+class WebGraphicsContext3D;
+}
+
+namespace cc {
+
+class RateLimiterClient {
+public:
+ virtual void rateLimit() = 0;
+};
+
+// A RateLimiter can be used to make sure that a single context does not dominate all execution time.
+// To use, construct a RateLimiter class around the context and call start() whenever calls are made on the
+// context outside of normal flow control. RateLimiter will block if the context is too far ahead of the
+// compositor.
+class RateLimiter : public base::RefCounted<RateLimiter> {
+public:
+ static scoped_refptr<RateLimiter> create(WebKit::WebGraphicsContext3D*, RateLimiterClient*);
+
+ void start();
+
+ // Context and client will not be accessed after stop().
+ void stop();
+
+private:
+ RateLimiter(WebKit::WebGraphicsContext3D*, RateLimiterClient*);
+ ~RateLimiter();
+ friend class base::RefCounted<RateLimiter>;
+
+ class Task;
+ friend class Task;
+ void rateLimitContext();
+
+ WebKit::WebGraphicsContext3D* m_context;
+ bool m_active;
+ RateLimiterClient *m_client;
+};
+
+}
+#endif // USE(ACCELERATED_COMPOSITING)
+
+#endif
« no previous file with comments | « cc/quad_sink.h ('k') | cc/rate_limiter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698