Index: sky/shell/ui/engine.cc |
diff --git a/sky/shell/ui/engine.cc b/sky/shell/ui/engine.cc |
index 8ff836d449b536f2dc7286b7f7a88f5cbfd98e47..7893ec51f4eb8db0c7761b700c1beee307ba28b6 100644 |
--- a/sky/shell/ui/engine.cc |
+++ b/sky/shell/ui/engine.cc |
@@ -58,7 +58,6 @@ Engine::Config::~Config() { |
Engine::Engine(const Config& config) |
: config_(config), |
animator_(new Animator(config, this)), |
- device_pixel_ratio_(1.0f), |
binding_(this), |
weak_factory_(this) { |
} |
@@ -102,7 +101,8 @@ skia::RefPtr<SkPicture> Engine::Paint() { |
if (sky_view_) { |
skia::RefPtr<SkPicture> picture = sky_view_->Paint(); |
canvas->clear(SK_ColorBLACK); |
- canvas->scale(device_pixel_ratio_, device_pixel_ratio_); |
+ canvas->scale(display_metrics_.device_pixel_ratio, |
+ display_metrics_.device_pixel_ratio); |
if (picture) |
canvas->drawPicture(picture.get()); |
} |
@@ -128,27 +128,24 @@ void Engine::OnOutputSurfaceDestroyed() { |
base::Bind(&GPUDelegate::OnOutputSurfaceDestroyed, config_.gpu_delegate)); |
} |
-void Engine::OnViewportMetricsChanged(int width, int height, |
- float device_pixel_ratio) { |
- physical_size_.SetSize(width, height); |
- device_pixel_ratio_ = device_pixel_ratio; |
+void Engine::OnViewportMetricsChanged(ViewportMetricsPtr metrics) { |
+ physical_size_.SetSize(metrics->physical_width, metrics->physical_height); |
- if (sky_view_) |
- UpdateSkyViewSize(); |
-} |
+ display_metrics_.physical_size = physical_size_; |
+ display_metrics_.device_pixel_ratio = metrics->device_pixel_ratio; |
+ display_metrics_.padding_top = metrics->padding_top; |
+ display_metrics_.padding_right = metrics->padding_right; |
+ display_metrics_.padding_bottom = metrics->padding_bottom; |
+ display_metrics_.padding_left = metrics->padding_left; |
-void Engine::UpdateSkyViewSize() { |
- CHECK(sky_view_); |
- blink::SkyDisplayMetrics metrics; |
- metrics.physical_size = physical_size_; |
- metrics.device_pixel_ratio = device_pixel_ratio_; |
- sky_view_->SetDisplayMetrics(metrics); |
+ if (sky_view_) |
+ sky_view_->SetDisplayMetrics(display_metrics_); |
} |
void Engine::OnInputEvent(InputEventPtr event) { |
TRACE_EVENT0("sky", "Engine::OnInputEvent"); |
scoped_ptr<blink::WebInputEvent> web_event = |
- ConvertEvent(event, device_pixel_ratio_); |
+ ConvertEvent(event, display_metrics_.device_pixel_ratio); |
if (!web_event) |
return; |
if (sky_view_) |
@@ -159,7 +156,7 @@ void Engine::RunFromLibrary(const std::string& name) { |
sky_view_ = blink::SkyView::Create(this); |
sky_view_->RunFromLibrary(blink::WebString::fromUTF8(name), |
dart_library_provider_.get()); |
- UpdateSkyViewSize(); |
+ sky_view_->SetDisplayMetrics(display_metrics_); |
} |
void Engine::RunFromSnapshotStream( |
@@ -167,7 +164,7 @@ void Engine::RunFromSnapshotStream( |
mojo::ScopedDataPipeConsumerHandle snapshot) { |
sky_view_ = blink::SkyView::Create(this); |
sky_view_->RunFromSnapshot(blink::WebString::fromUTF8(name), snapshot.Pass()); |
- UpdateSkyViewSize(); |
+ sky_view_->SetDisplayMetrics(display_metrics_); |
} |
void Engine::RunFromNetwork(const mojo::String& url) { |