Chromium Code Reviews| Index: android_webview/browser/render_thread_manager.h |
| diff --git a/android_webview/browser/render_thread_manager.h b/android_webview/browser/render_thread_manager.h |
| index 84c148e07b7e3dc1103ec9b408acc62eaf7744b8..19b0df9a47f5dfd86fe62389831dce75b8f6a135 100644 |
| --- a/android_webview/browser/render_thread_manager.h |
| +++ b/android_webview/browser/render_thread_manager.h |
| @@ -7,6 +7,7 @@ |
| #include <map> |
| +#include "android_webview/browser/compositor_frame_consumer.h" |
| #include "android_webview/browser/gl_view_renderer_manager.h" |
| #include "android_webview/browser/parent_compositor_draw_constraints.h" |
| #include "base/cancelable_callback.h" |
| @@ -26,22 +27,14 @@ class RequestInvokeGLTracker; |
| } |
| class RenderThreadManagerClient; |
| +class CompositorFrameProducer; |
| class ChildFrame; |
| class HardwareRenderer; |
| class InsideHardwareReleaseReset; |
| // This class is used to pass data between UI thread and RenderThread. |
| -class RenderThreadManager { |
| +class RenderThreadManager : public CompositorFrameConsumer { |
| public: |
| - struct ReturnedResources { |
| - ReturnedResources(); |
| - ~ReturnedResources(); |
| - |
| - uint32_t output_surface_id; |
| - cc::ReturnedResourceArray resources; |
| - }; |
| - using ReturnedResourcesMap = std::map<uint32_t, ReturnedResources>; |
| - |
| RenderThreadManager( |
| RenderThreadManagerClient* client, |
| const scoped_refptr<base::SingleThreadTaskRunner>& ui_loop); |
| @@ -50,16 +43,20 @@ class RenderThreadManager { |
| // This function can be called from any thread. |
| void ClientRequestInvokeGL(bool for_idle); |
| - // UI thread methods. |
| - void SetScrollOffsetOnUI(gfx::Vector2d scroll_offset); |
| - void SetFrameOnUI(std::unique_ptr<ChildFrame> frame); |
| - void InitializeHardwareDrawIfNeededOnUI(); |
| - ParentCompositorDrawConstraints GetParentDrawConstraintsOnUI() const; |
| - void SwapReturnedResourcesOnUI(ReturnedResourcesMap* returned_resource_map); |
| - bool ReturnedResourcesEmptyOnUI() const; |
| - std::unique_ptr<ChildFrame> PassUncommittedFrameOnUI(); |
| - bool HasFrameOnUI() const; |
| - void DeleteHardwareRendererOnUI(); |
| + // CompositorFrameConsumer methods. |
| + void SetScrollOffsetOnUI(gfx::Vector2d scroll_offset) override; |
| + void SetFrameOnUI(std::unique_ptr<ChildFrame> frame) override; |
| + void InitializeHardwareDrawIfNeededOnUI() override; |
| + ParentCompositorDrawConstraints GetParentDrawConstraintsOnUI() const override; |
| + void SwapReturnedResourcesOnUI( |
| + ReturnedResourcesMap* returned_resource_map) override; |
| + bool ReturnedResourcesEmptyOnUI() const override; |
| + std::unique_ptr<ChildFrame> PassUncommittedFrameOnUI() override; |
| + bool HasFrameOnUI() const override; |
| + void DeleteHardwareRendererOnUI() override; |
| + |
|
boliu
2016/04/21 17:05:40
remove blank line
Tobias Sargeant
2016/04/21 17:48:27
Done.
|
| + void SetCompositorFrameProducer(CompositorFrameProducer*) override; |
| + void OnCompositorFrameProducerWillDestroy() override; |
| // RT thread methods. |
| gfx::Vector2d GetScrollOffsetOnRT(); |
| @@ -97,6 +94,7 @@ class RenderThreadManager { |
| // Accessed by UI thread. |
| scoped_refptr<base::SingleThreadTaskRunner> ui_loop_; |
| RenderThreadManagerClient* const client_; |
| + CompositorFrameProducer* compositor_frame_producer_; |
| base::WeakPtr<RenderThreadManager> ui_thread_weak_ptr_; |
| base::CancelableClosure request_draw_gl_cancelable_closure_; |