| Index: android_webview/browser/hardware_renderer.cc
|
| diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc
|
| index 186e744e6bb45868b2bbaf39013016412f5037fe..c988cc58451d77b577ce97e2e70d6c788bae6508 100644
|
| --- a/android_webview/browser/hardware_renderer.cc
|
| +++ b/android_webview/browser/hardware_renderer.cc
|
| @@ -118,14 +118,17 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info) {
|
| std::unique_ptr<cc::CompositorFrame> child_compositor_frame =
|
| std::move(child_frame_->frame);
|
|
|
| + float device_scale_factor =
|
| + child_compositor_frame->metadata.device_scale_factor;
|
| gfx::Size frame_size =
|
| child_compositor_frame->render_pass_list.back()->output_rect.size();
|
| - bool size_changed = frame_size != frame_size_;
|
| - frame_size_ = frame_size;
|
| - if (!child_id_.is_valid() || size_changed) {
|
| + if (!child_id_.is_valid() || surface_size_ != frame_size ||
|
| + device_scale_factor_ != device_scale_factor) {
|
| if (child_id_.is_valid())
|
| DestroySurface();
|
| AllocateSurface();
|
| + surface_size_ = frame_size;
|
| + device_scale_factor_ = device_scale_factor;
|
| }
|
|
|
| support_->SubmitCompositorFrame(child_id_,
|
| @@ -153,7 +156,7 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info) {
|
| gfx::Rect clip(draw_info->clip_left, draw_info->clip_top,
|
| draw_info->clip_right - draw_info->clip_left,
|
| draw_info->clip_bottom - draw_info->clip_top);
|
| - surfaces_->DrawAndSwap(viewport, clip, transform, frame_size_,
|
| + surfaces_->DrawAndSwap(viewport, clip, transform, surface_size_,
|
| cc::SurfaceId(frame_sink_id_, child_id_));
|
| }
|
|
|
|
|