Chromium Code Reviews| 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..e5f4df23325bb7dce49f71b737b2b793cbb9be67 100644 |
| --- a/android_webview/browser/hardware_renderer.h |
| +++ b/android_webview/browser/hardware_renderer.h |
| @@ -5,46 +5,88 @@ |
| #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 "base/memory/weak_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. |
| + virtual bool DrawGL(bool stencil_enabled, |
| + int framebuffer_binding_ext, |
| + AwDrawGLInfo* draw_info, |
| + DrawGLResult* result) OVERRIDE; |
| + |
| + // cc::LayerTreeHostClient. |
| + 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. |
| + virtual void ScheduleComposite() OVERRIDE {} |
| + virtual void ScheduleAnimation() OVERRIDE {} |
| + virtual void DidPostSwapBuffers() OVERRIDE {} |
| + virtual void DidAbortSwapBuffers() OVERRIDE {} |
| + |
| + // cc::DelegatedFrameResourceCollectionClient. |
| + virtual void UnusedResourcesAreAvailable() OVERRIDE; |
| private: |
| - friend class internal::DeferredGpuCommandService; |
| - |
| - void SetCompositorMemoryPolicy(); |
| - |
| SharedRendererState* shared_renderer_state_; |
| typedef void* EGLContext; |
| EGLContext last_egl_context_; |
| + int view_width_; |
| + int view_height_; |
| + gfx::Vector2d scroll_offset_; |
| + |
| 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> layer_; |
|
danakj
2014/05/20 21:50:02
better name please, which layer?
boliu
2014/05/21 01:33:26
Umm...delegated_layer_?
There's the root, and the
danakj
2014/05/21 15:22:54
Yes, sure, that's much better :)
|
| + |
| + scoped_ptr<ParentOutputSurface> output_surface_holder_; |
| + base::WeakPtr<ParentOutputSurface> output_surface_; |
|
danakj
2014/05/20 21:50:02
can name this output_surface_weak_ptr_? then it's
boliu
2014/05/21 01:33:26
Done.
|
| + |
| DISALLOW_COPY_AND_ASSIGN(HardwareRenderer); |
| }; |