| Index: sky/shell/ui/engine.cc
|
| diff --git a/sky/shell/ui/engine.cc b/sky/shell/ui/engine.cc
|
| index b316c4cfed2fdb0d8ac5fe95bc577df6b9b1caa2..5b1e6da613a8047cb96398f3df8e68da43d937c7 100644
|
| --- a/sky/shell/ui/engine.cc
|
| +++ b/sky/shell/ui/engine.cc
|
| @@ -5,10 +5,12 @@
|
| #include "sky/shell/ui/engine.h"
|
|
|
| #include "base/bind.h"
|
| +#include "sky/engine/public/platform/WebInputEvent.h"
|
| #include "sky/engine/public/web/Sky.h"
|
| #include "sky/engine/public/web/WebLocalFrame.h"
|
| #include "sky/engine/public/web/WebView.h"
|
| #include "sky/shell/ui/animator.h"
|
| +#include "sky/shell/ui/input_event_converter.h"
|
| #include "sky/shell/ui/platform_impl.h"
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| #include "third_party/skia/include/core/SkPictureRecorder.h"
|
| @@ -19,6 +21,8 @@ namespace shell {
|
| Engine::Engine(const Config& config)
|
| : animator_(new Animator(config, this)),
|
| web_view_(nullptr),
|
| + device_pixel_ratio_(1.0f),
|
| + viewport_observer_binding_(this),
|
| weak_factory_(this) {
|
| }
|
|
|
| @@ -39,7 +43,7 @@ void Engine::Init(mojo::ScopedMessagePipeHandle service_provider) {
|
| web_view_ = blink::WebView::create(this);
|
| web_view_->setMainFrame(blink::WebLocalFrame::create(this));
|
| web_view_->mainFrame()->load(
|
| - GURL("http://127.0.0.1:8000/sky/examples/spinning-square.sky"));
|
| + GURL("http://domokit.github.io/sky/examples/spinning-square.sky"));
|
| }
|
|
|
| void Engine::BeginFrame(base::TimeTicks frame_time) {
|
| @@ -63,16 +67,30 @@ skia::RefPtr<SkPicture> Engine::Paint() {
|
| return skia::AdoptRef(recorder.endRecordingAsPicture());
|
| }
|
|
|
| -void Engine::OnViewportMetricsChanged(const gfx::Size& physical_size,
|
| +void Engine::ConnectToViewportObserver(
|
| + mojo::InterfaceRequest<ViewportObserver> request) {
|
| + viewport_observer_binding_.Bind(request.Pass());
|
| +}
|
| +
|
| +void Engine::OnViewportMetricsChanged(int width, int height,
|
| float device_pixel_ratio) {
|
| - physical_size_ = physical_size;
|
| + physical_size_.SetSize(width, height);
|
| + device_pixel_ratio_ = device_pixel_ratio;
|
| web_view_->setDeviceScaleFactor(device_pixel_ratio);
|
| - gfx::SizeF size = gfx::ScaleSize(physical_size, 1 / device_pixel_ratio);
|
| + gfx::SizeF size = gfx::ScaleSize(physical_size_, 1 / device_pixel_ratio);
|
| // FIXME: We should be able to set the size of the WebView in floating point
|
| // because its in logical pixels.
|
| web_view_->resize(blink::WebSize(size.width(), size.height()));
|
| }
|
|
|
| +void Engine::OnInputEvent(InputEventPtr event) {
|
| + scoped_ptr<blink::WebInputEvent> web_event =
|
| + ConvertEvent(event, device_pixel_ratio_);
|
| + if (!web_event)
|
| + return;
|
| + web_view_->handleInputEvent(*web_event);
|
| +}
|
| +
|
| void Engine::initializeLayerTreeView() {
|
| }
|
|
|
|
|