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

Unified Diff: services/ui/ws/platform_display_default.cc

Issue 2694043003: FrameGenerator should not be created until an AcceleratedWidget is available (Closed)
Patch Set: c Created 3 years, 10 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
« no previous file with comments | « services/ui/ws/platform_display_default.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/platform_display_default.cc
diff --git a/services/ui/ws/platform_display_default.cc b/services/ui/ws/platform_display_default.cc
index 6f8c8d67bb6008827c277116ca3548c6f302e53f..af3a2f41264124888995c8c91e2a630915770dda 100644
--- a/services/ui/ws/platform_display_default.cc
+++ b/services/ui/ws/platform_display_default.cc
@@ -35,11 +35,10 @@ PlatformDisplayDefault::PlatformDisplayDefault(
#if !defined(OS_ANDROID)
image_cursors_(new ImageCursors),
#endif
- frame_generator_(new FrameGenerator(this, init_params.root_window)),
metrics_(init_params.metrics),
- widget_(gfx::kNullAcceleratedWidget) {
- frame_generator_->SetDeviceScaleFactor(
- init_params.metrics.device_scale_factor);
+ widget_(gfx::kNullAcceleratedWidget),
+ root_window_(init_params.root_window),
+ init_device_scale_factor_(init_params.metrics.device_scale_factor) {
}
PlatformDisplayDefault::~PlatformDisplayDefault() {
@@ -148,7 +147,8 @@ bool PlatformDisplayDefault::UpdateViewportMetrics(
}
metrics_ = metrics;
- frame_generator_->SetDeviceScaleFactor(metrics_.device_scale_factor);
+ if (frame_generator_)
+ frame_generator_->SetDeviceScaleFactor(metrics_.device_scale_factor);
return true;
}
@@ -178,7 +178,8 @@ void PlatformDisplayDefault::OnBoundsChanged(const gfx::Rect& new_bounds) {
}
void PlatformDisplayDefault::OnDamageRect(const gfx::Rect& damaged_region) {
- frame_generator_->OnWindowDamaged();
+ if (frame_generator_)
+ frame_generator_->OnWindowDamaged();
}
void PlatformDisplayDefault::DispatchEvent(ui::Event* event) {
@@ -247,7 +248,8 @@ void PlatformDisplayDefault::OnAcceleratedWidgetAvailable(
DCHECK_EQ(gfx::kNullAcceleratedWidget, widget_);
widget_ = widget;
delegate_->OnAcceleratedWidgetAvailable();
- frame_generator_->OnAcceleratedWidgetAvailable(widget);
+ frame_generator_.reset(new FrameGenerator(this, root_window_, widget_));
+ frame_generator_->SetDeviceScaleFactor(init_device_scale_factor_);
}
void PlatformDisplayDefault::OnAcceleratedWidgetDestroyed() {
« no previous file with comments | « services/ui/ws/platform_display_default.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698