| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ | 5 #ifndef ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ |
| 6 #define ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ | 6 #define ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 const gfx::Vector2dF& total_scroll_offset_dip, | 122 const gfx::Vector2dF& total_scroll_offset_dip, |
| 123 const gfx::Vector2dF& max_scroll_offset_dip, | 123 const gfx::Vector2dF& max_scroll_offset_dip, |
| 124 const gfx::SizeF& scrollable_size_dip, | 124 const gfx::SizeF& scrollable_size_dip, |
| 125 float page_scale_factor, | 125 float page_scale_factor, |
| 126 float min_page_scale_factor, | 126 float min_page_scale_factor, |
| 127 float max_page_scale_factor) override; | 127 float max_page_scale_factor) override; |
| 128 void DidOverscroll(content::SynchronousCompositor* compositor, | 128 void DidOverscroll(content::SynchronousCompositor* compositor, |
| 129 const gfx::Vector2dF& accumulated_overscroll, | 129 const gfx::Vector2dF& accumulated_overscroll, |
| 130 const gfx::Vector2dF& latest_overscroll_delta, | 130 const gfx::Vector2dF& latest_overscroll_delta, |
| 131 const gfx::Vector2dF& current_fling_velocity) override; | 131 const gfx::Vector2dF& current_fling_velocity) override; |
| 132 void OnDrawHardwareProcessFrame( |
| 133 content::SynchronousCompositor::Frame frame) override; |
| 132 | 134 |
| 133 // CompositorFrameProducer overrides | 135 // CompositorFrameProducer overrides |
| 134 void OnParentDrawConstraintsUpdated( | 136 void OnParentDrawConstraintsUpdated( |
| 135 CompositorFrameConsumer* compositor_frame_consumer) override; | 137 CompositorFrameConsumer* compositor_frame_consumer) override; |
| 136 void RemoveCompositorFrameConsumer( | 138 void RemoveCompositorFrameConsumer( |
| 137 CompositorFrameConsumer* compositor_frame_consumer) override; | 139 CompositorFrameConsumer* compositor_frame_consumer) override; |
| 138 | 140 |
| 139 void SetActiveCompositorID(const CompositorID& compositor_id); | 141 void SetActiveCompositorID(const CompositorID& compositor_id); |
| 140 | 142 |
| 141 // Visible for testing. | 143 // Visible for testing. |
| 142 content::SynchronousCompositor* GetActiveCompositorForTesting() const { | 144 content::SynchronousCompositor* GetActiveCompositorForTesting() const { |
| 143 return compositor_; | 145 return compositor_; |
| 144 } | 146 } |
| 145 | 147 |
| 146 private: | 148 private: |
| 147 void SetTotalRootLayerScrollOffset(const gfx::Vector2dF& new_value_dip); | 149 void SetTotalRootLayerScrollOffset(const gfx::Vector2dF& new_value_dip); |
| 148 bool CanOnDraw(); | 150 bool CanOnDraw(); |
| 149 bool CompositeSW(SkCanvas* canvas); | 151 bool CompositeSW(SkCanvas* canvas); |
| 150 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> | 152 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> |
| 151 RootLayerStateAsValue(const gfx::Vector2dF& total_scroll_offset_dip, | 153 RootLayerStateAsValue(const gfx::Vector2dF& total_scroll_offset_dip, |
| 152 const gfx::SizeF& scrollable_size_dip); | 154 const gfx::SizeF& scrollable_size_dip); |
| 153 | 155 |
| 154 void ReturnUnusedResource(std::unique_ptr<ChildFrame> frame); | 156 void ReturnUnusedResource(std::unique_ptr<ChildFrame> frame); |
| 155 void ReturnResourceFromParent( | 157 void ReturnResourceFromParent( |
| 156 CompositorFrameConsumer* compositor_frame_consumer); | 158 CompositorFrameConsumer* compositor_frame_consumer); |
| 157 void ReleaseHardware(); | 159 void ReleaseHardware(); |
| 160 gfx::Rect ComputeViewportRectForTilePriority(); |
| 158 | 161 |
| 159 gfx::Vector2d max_scroll_offset() const; | 162 gfx::Vector2d max_scroll_offset() const; |
| 160 | 163 |
| 161 void UpdateMemoryPolicy(); | 164 void UpdateMemoryPolicy(); |
| 162 | 165 |
| 163 content::SynchronousCompositor* FindCompositor( | 166 content::SynchronousCompositor* FindCompositor( |
| 164 const CompositorID& compositor_id) const; | 167 const CompositorID& compositor_id) const; |
| 165 // For debug tracing or logging. Return the string representation of this | 168 // For debug tracing or logging. Return the string representation of this |
| 166 // view renderer's state. | 169 // view renderer's state. |
| 167 std::string ToString() const; | 170 std::string ToString() const; |
| 168 | 171 |
| 169 BrowserViewRendererClient* const client_; | 172 BrowserViewRendererClient* const client_; |
| 170 const scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; | 173 const scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; |
| 174 const bool async_on_draw_hardware_; |
| 171 CompositorFrameConsumer* current_compositor_frame_consumer_; | 175 CompositorFrameConsumer* current_compositor_frame_consumer_; |
| 172 std::set<CompositorFrameConsumer*> compositor_frame_consumers_; | 176 std::set<CompositorFrameConsumer*> compositor_frame_consumers_; |
| 173 | 177 |
| 174 // The current compositor that's owned by the current RVH. | 178 // The current compositor that's owned by the current RVH. |
| 175 content::SynchronousCompositor* compositor_; | 179 content::SynchronousCompositor* compositor_; |
| 176 // The process id and routing id of the most recent RVH according to | 180 // The process id and routing id of the most recent RVH according to |
| 177 // RVHChanged. | 181 // RVHChanged. |
| 178 CompositorID compositor_id_; | 182 CompositorID compositor_id_; |
| 179 // A map from compositor's per-WebView unique ID to the compositor's raw | 183 // A map from compositor's per-WebView unique ID to the compositor's raw |
| 180 // pointer. A raw pointer here is fine because the entry will be erased when | 184 // pointer. A raw pointer here is fine because the entry will be erased when |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 gfx::Vector2dF overscroll_rounding_error_; | 224 gfx::Vector2dF overscroll_rounding_error_; |
| 221 | 225 |
| 222 ParentCompositorDrawConstraints external_draw_constraints_; | 226 ParentCompositorDrawConstraints external_draw_constraints_; |
| 223 | 227 |
| 224 DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer); | 228 DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer); |
| 225 }; | 229 }; |
| 226 | 230 |
| 227 } // namespace android_webview | 231 } // namespace android_webview |
| 228 | 232 |
| 229 #endif // ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ | 233 #endif // ANDROID_WEBVIEW_BROWSER_BROWSER_VIEW_RENDERER_H_ |
| OLD | NEW |