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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2428383006: Decouple VR Shell DPR and CSS size from Physical Displays. (Closed)
Patch Set: Address bshe comments + minor fix Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "content/browser/renderer_host/render_widget_host_view_android.h" 5 #include "content/browser/renderer_host/render_widget_host_view_android.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 if (!host_ || host_->is_hidden() || !IsSurfaceAvailableForCopy()) { 554 if (!host_ || host_->is_hidden() || !IsSurfaceAvailableForCopy()) {
555 result_callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE); 555 result_callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE);
556 return; 556 return;
557 } 557 }
558 gfx::Size bounds = current_surface_size_; 558 gfx::Size bounds = current_surface_size_;
559 if (src_subrect.IsEmpty()) 559 if (src_subrect.IsEmpty())
560 src_subrect = gfx::Rect(bounds); 560 src_subrect = gfx::Rect(bounds);
561 DCHECK_LE(src_subrect.width() + src_subrect.x(), bounds.width()); 561 DCHECK_LE(src_subrect.width() + src_subrect.x(), bounds.width());
562 DCHECK_LE(src_subrect.height() + src_subrect.y(), bounds.height()); 562 DCHECK_LE(src_subrect.height() + src_subrect.y(), bounds.height());
563 const display::Display& display = 563 const display::Display& display =
564 display::Screen::GetScreen()->GetPrimaryDisplay(); 564 display::Screen::GetScreen()->GetDisplayNearestWindow(GetNativeView());
565 float device_scale_factor = display.device_scale_factor(); 565 float device_scale_factor = display.device_scale_factor();
566 DCHECK_GT(device_scale_factor, 0); 566 DCHECK_GT(device_scale_factor, 0);
567 gfx::Size dst_size( 567 gfx::Size dst_size(
568 gfx::ScaleToCeiledSize(src_subrect.size(), scale / device_scale_factor)); 568 gfx::ScaleToCeiledSize(src_subrect.size(), scale / device_scale_factor));
569 src_subrect = gfx::ConvertRectToDIP(device_scale_factor, src_subrect); 569 src_subrect = gfx::ConvertRectToDIP(device_scale_factor, src_subrect);
570 570
571 CopyFromCompositingSurface(src_subrect, dst_size, result_callback, 571 CopyFromCompositingSurface(src_subrect, dst_size, result_callback,
572 preferred_color_type); 572 preferred_color_type);
573 } 573 }
574 574
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE); 990 callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE);
991 return; 991 return;
992 } 992 }
993 if (!(view_.GetWindowAndroid())) { 993 if (!(view_.GetWindowAndroid())) {
994 callback.Run(SkBitmap(), READBACK_FAILED); 994 callback.Run(SkBitmap(), READBACK_FAILED);
995 return; 995 return;
996 } 996 }
997 997
998 base::TimeTicks start_time = base::TimeTicks::Now(); 998 base::TimeTicks start_time = base::TimeTicks::Now();
999 const display::Display& display = 999 const display::Display& display =
1000 display::Screen::GetScreen()->GetPrimaryDisplay(); 1000 display::Screen::GetScreen()->GetDisplayNearestWindow(GetNativeView());
1001 float device_scale_factor = display.device_scale_factor(); 1001 float device_scale_factor = display.device_scale_factor();
1002 gfx::Size dst_size_in_pixel = 1002 gfx::Size dst_size_in_pixel =
1003 gfx::ConvertRectToPixel(device_scale_factor, gfx::Rect(dst_size)).size(); 1003 gfx::ConvertRectToPixel(device_scale_factor, gfx::Rect(dst_size)).size();
1004 gfx::Rect src_subrect_in_pixel = 1004 gfx::Rect src_subrect_in_pixel =
1005 gfx::ConvertRectToPixel(device_scale_factor, src_subrect); 1005 gfx::ConvertRectToPixel(device_scale_factor, src_subrect);
1006 1006
1007 if (!using_browser_compositor_) { 1007 if (!using_browser_compositor_) {
1008 SynchronousCopyContents(src_subrect_in_pixel, dst_size_in_pixel, callback, 1008 SynchronousCopyContents(src_subrect_in_pixel, dst_size_in_pixel, callback,
1009 preferred_color_type); 1009 preferred_color_type);
1010 UMA_HISTOGRAM_TIMES("Compositing.CopyFromSurfaceTimeSynchronous", 1010 UMA_HISTOGRAM_TIMES("Compositing.CopyFromSurfaceTimeSynchronous",
(...skipping 979 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 case ui::MotionEvent::ACTION_UP: 1990 case ui::MotionEvent::ACTION_UP:
1991 case ui::MotionEvent::ACTION_POINTER_UP: 1991 case ui::MotionEvent::ACTION_POINTER_UP:
1992 UMA_HISTOGRAM_CUSTOM_COUNTS("Event.Latency.OS.TOUCH_RELEASED", 1992 UMA_HISTOGRAM_CUSTOM_COUNTS("Event.Latency.OS.TOUCH_RELEASED",
1993 delta.InMicroseconds(), 1, 1000000, 50); 1993 delta.InMicroseconds(), 1, 1000000, 50);
1994 default: 1994 default:
1995 return; 1995 return;
1996 } 1996 }
1997 } 1997 }
1998 1998
1999 } // namespace content 1999 } // namespace content
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/vr_shell/vr_shell_ui_message_handler.cc ('k') | third_party/WebKit/Source/modules/vr/VRDisplay.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698