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..68ed5545ee62fa995844b1801e1e0642f8a860c0 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,18 @@ 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 SetCompositorFrameProducer(CompositorFrameProducer*) override; |
boliu
2016/04/21 18:01:32
param name
Tobias Sargeant
2016/04/22 11:42:22
Done.
|
+ 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; |
// RT thread methods. |
gfx::Vector2d GetScrollOffsetOnRT(); |
@@ -97,6 +92,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_; |