summaryrefslogtreecommitdiffstats
path: root/content/public/renderer/android/synchronous_compositor.h
diff options
context:
space:
mode:
authorjoth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-01 18:18:21 +0000
committerjoth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-01 18:18:21 +0000
commit86f557dfc7f23c5044cdf9dca214836562be8a27 (patch)
tree1f889037b2133857d2dd60275f60c000a3678ea4 /content/public/renderer/android/synchronous_compositor.h
parent3184f90bff4653bfb7a90ec4a1398559c4668247 (diff)
downloadchromium_src-86f557dfc7f23c5044cdf9dca214836562be8a27.zip
chromium_src-86f557dfc7f23c5044cdf9dca214836562be8a27.tar.gz
chromium_src-86f557dfc7f23c5044cdf9dca214836562be8a27.tar.bz2
Introduce SynchronousCompositor + Client
Makes a direct API from aw/browser into the content/renderer compositor (for use in single process only). Plumb through the webview SW draw path as first step to removing the synchronous IPC path. BUG=230226 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/14445008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197660 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/public/renderer/android/synchronous_compositor.h')
-rw-r--r--content/public/renderer/android/synchronous_compositor.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/content/public/renderer/android/synchronous_compositor.h b/content/public/renderer/android/synchronous_compositor.h
new file mode 100644
index 0000000..f0c380d
--- /dev/null
+++ b/content/public/renderer/android/synchronous_compositor.h
@@ -0,0 +1,35 @@
+// Copyright (c) 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.
+
+#ifndef CONTENT_PUBLIC_RENDERER_ANDROID_SYNCHRONOUS_COMPOSTIOR_
+#define CONTENT_PUBLIC_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_
+
+class SkCanvas;
+
+namespace content {
+
+class SynchronousCompositorClient;
+
+// Interface for embedders that which to direct compositing operations
+// synchronously under their own control. Only meaningful when the
+// kEnableSyncrhonousRendererCompositor flag is specified.
+class SynchronousCompositor {
+ public:
+ // Allows changing or resetting the client to NULL (this must be used if
+ // the client is being deleted prior to the DidDestroyCompositor() call
+ // being received by the client). Ownership of |client| remains with
+ // the caller.
+ virtual void SetClient(SynchronousCompositorClient* client) = 0;
+
+ // "On demand" SW draw, into the supplied canvas (observing the transform
+ // and clip set there-in).
+ virtual bool DemandDrawSw(SkCanvas* canvas) = 0;
+
+ protected:
+ virtual ~SynchronousCompositor() {}
+};
+
+} // namespace content
+
+#endif // CONTENT_PUBLIC_RENDERER_ANDROID_SYNCHRONOUS_COMPOSTIOR_