Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1816)

Unified Diff: android_webview/browser/hardware_renderer.cc

Issue 2848223003: Enforce constant size and device scale factor for surfaces (Closed)
Patch Set: c Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_));
}

Powered by Google App Engine
This is Rietveld 408576698