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

Unified Diff: android_webview/browser/hardware_renderer.h

Issue 287993004: [Android WebView] Implement Ubercomp for Render Thread support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix clang compile Created 6 years, 7 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
Index: android_webview/browser/hardware_renderer.h
diff --git a/android_webview/browser/hardware_renderer.h b/android_webview/browser/hardware_renderer.h
index 169bbd3a5ce425fb397a4198fab3b4ec01aca39d..8adbf0e9e3e9b95fa570644766fe660414b2abe0 100644
--- a/android_webview/browser/hardware_renderer.h
+++ b/android_webview/browser/hardware_renderer.h
@@ -5,46 +5,93 @@
#ifndef ANDROID_WEBVIEW_BROWSER_HARDWARE_RENDERER_H_
#define ANDROID_WEBVIEW_BROWSER_HARDWARE_RENDERER_H_
-#include <queue>
-
+#include "android_webview/browser/hardware_renderer_interface.h"
#include "android_webview/browser/shared_renderer_state.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_local.h"
+#include "base/memory/scoped_ptr.h"
+#include "cc/layers/delegated_frame_resource_collection.h"
+#include "cc/trees/layer_tree_host_client.h"
+#include "cc/trees/layer_tree_host_single_thread_client.h"
struct AwDrawGLInfo;
+namespace cc {
+class DelegatedFrameProvider;
+class DelegatedRendererLayer;
+class Layer;
+class LayerTreeHost;
+}
+
namespace android_webview {
class AwGLSurface;
-class BrowserViewRendererClient;
-
-namespace internal {
-class DeferredGpuCommandService;
-} // namespace internal
+class ParentOutputSurface;
-class HardwareRenderer {
+class HardwareRenderer : public HardwareRendererInterface,
+ public cc::LayerTreeHostClient,
+ public cc::LayerTreeHostSingleThreadClient,
+ public cc::DelegatedFrameResourceCollectionClient {
public:
explicit HardwareRenderer(SharedRendererState* state);
- ~HardwareRenderer();
-
- bool DrawGL(bool stencil_enabled,
- int framebuffer_binding_ext,
- AwDrawGLInfo* draw_info,
- DrawGLResult* result);
+ virtual ~HardwareRenderer();
+
+ // HardwareRendererInterface overrides.
+ virtual bool DrawGL(bool stencil_enabled,
+ int framebuffer_binding_ext,
+ AwDrawGLInfo* draw_info,
+ DrawGLResult* result) OVERRIDE;
+
+ // cc::LayerTreeHostClient overrides.
+ virtual void WillBeginMainFrame(int frame_id) OVERRIDE {}
+ virtual void DidBeginMainFrame() OVERRIDE;
+ virtual void Animate(base::TimeTicks frame_begin_time) OVERRIDE {}
+ virtual void Layout() OVERRIDE {}
+ virtual void ApplyScrollAndScale(const gfx::Vector2d& scroll_delta,
+ float page_scale) OVERRIDE {}
+ virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface(
+ bool fallback) OVERRIDE;
+ virtual void DidInitializeOutputSurface() OVERRIDE {}
+ virtual void WillCommit() OVERRIDE {}
+ virtual void DidCommit() OVERRIDE {}
+ virtual void DidCommitAndDrawFrame() OVERRIDE {}
+ virtual void DidCompleteSwapBuffers() OVERRIDE {}
+
+ // cc::LayerTreeHostSingleThreadClient overrides.
+ virtual void ScheduleComposite() OVERRIDE {}
+ virtual void ScheduleAnimation() OVERRIDE {}
+ virtual void DidPostSwapBuffers() OVERRIDE {}
+ virtual void DidAbortSwapBuffers() OVERRIDE {}
+
+ // cc::DelegatedFrameResourceCollectionClient overrides.
+ virtual void UnusedResourcesAreAvailable() OVERRIDE;
private:
- friend class internal::DeferredGpuCommandService;
-
- void SetCompositorMemoryPolicy();
-
SharedRendererState* shared_renderer_state_;
typedef void* EGLContext;
EGLContext last_egl_context_;
+ // Information about last delegated frame.
+ int view_width_;
+ int view_height_;
+ gfx::Vector2d scroll_offset_;
+
+ // Information from draw.
+ gfx::Size viewport_;
+ gfx::Rect clip_;
+ bool viewport_clip_valid_for_dcheck_;
+
scoped_refptr<AwGLSurface> gl_surface_;
+ scoped_ptr<cc::LayerTreeHost> layer_tree_host_;
+ scoped_refptr<cc::Layer> root_layer_;
+
+ scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection_;
+ scoped_refptr<cc::DelegatedFrameProvider> frame_provider_;
+ scoped_refptr<cc::DelegatedRendererLayer> delegated_layer_;
+
+ // This is owned indirectly by |layer_tree_host_|.
+ ParentOutputSurface* output_surface_;
+
DISALLOW_COPY_AND_ASSIGN(HardwareRenderer);
};
« no previous file with comments | « android_webview/browser/deferred_gpu_command_service.cc ('k') | android_webview/browser/hardware_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698