| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "services/native_viewport/native_viewport_impl.h" | 5 #include "services/native_viewport/native_viewport_impl.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 } // namespace | 31 } // namespace |
| 32 | 32 |
| 33 NativeViewportImpl::NativeViewportImpl(mojo::ApplicationImpl* app, | 33 NativeViewportImpl::NativeViewportImpl(mojo::ApplicationImpl* app, |
| 34 bool is_headless) | 34 bool is_headless) |
| 35 : is_headless_(is_headless), | 35 : is_headless_(is_headless), |
| 36 widget_id_(0u), | 36 widget_id_(0u), |
| 37 metrics_(mojo::ViewportMetrics::New()), | 37 metrics_(mojo::ViewportMetrics::New()), |
| 38 waiting_for_event_ack_(false), | 38 waiting_for_event_ack_(false), |
| 39 weak_factory_(this) { | 39 weak_factory_(this) { |
| 40 app->ConnectToService("mojo:surfaces_service", &surfaces_service_); | 40 app->ConnectToService("mojo:surfaces_service", &surface_); |
| 41 // TODO(jamesr): Should be mojo_gpu_service | 41 // TODO(jamesr): Should be mojo_gpu_service |
| 42 app->ConnectToService("mojo:native_viewport_service", &gpu_service_); | 42 app->ConnectToService("mojo:native_viewport_service", &gpu_service_); |
| 43 } | 43 } |
| 44 | 44 |
| 45 NativeViewportImpl::~NativeViewportImpl() { | 45 NativeViewportImpl::~NativeViewportImpl() { |
| 46 // Destroy the NativeViewport early on as it may call us back during | 46 // Destroy the NativeViewport early on as it may call us back during |
| 47 // destruction and we want to be in a known state. | 47 // destruction and we want to be in a known state. |
| 48 platform_viewport_.reset(); | 48 platform_viewport_.reset(); |
| 49 } | 49 } |
| 50 | 50 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 77 platform_viewport_->SetBounds(gfx::Rect(size.To<gfx::Size>())); | 77 platform_viewport_->SetBounds(gfx::Rect(size.To<gfx::Size>())); |
| 78 } | 78 } |
| 79 | 79 |
| 80 void NativeViewportImpl::SubmittedFrame(mojo::SurfaceIdPtr child_surface_id) { | 80 void NativeViewportImpl::SubmittedFrame(mojo::SurfaceIdPtr child_surface_id) { |
| 81 if (child_surface_id_.is_null()) { | 81 if (child_surface_id_.is_null()) { |
| 82 // If this is the first indication that the client will use surfaces, | 82 // If this is the first indication that the client will use surfaces, |
| 83 // initialize that system. | 83 // initialize that system. |
| 84 // TODO(jamesr): When everything is converted to surfaces initialize this | 84 // TODO(jamesr): When everything is converted to surfaces initialize this |
| 85 // eagerly. | 85 // eagerly. |
| 86 viewport_surface_.reset(new ViewportSurface( | 86 viewport_surface_.reset(new ViewportSurface( |
| 87 surfaces_service_.get(), gpu_service_.get(), | 87 surface_.Pass(), gpu_service_.get(), metrics_->size.To<gfx::Size>(), |
| 88 metrics_->size.To<gfx::Size>(), | |
| 89 child_surface_id.To<cc::SurfaceId>())); | 88 child_surface_id.To<cc::SurfaceId>())); |
| 90 if (widget_id_) | 89 if (widget_id_) |
| 91 viewport_surface_->SetWidgetId(widget_id_); | 90 viewport_surface_->SetWidgetId(widget_id_); |
| 92 } | 91 } |
| 93 child_surface_id_ = child_surface_id.To<cc::SurfaceId>(); | 92 child_surface_id_ = child_surface_id.To<cc::SurfaceId>(); |
| 94 if (viewport_surface_) | 93 if (viewport_surface_) |
| 95 viewport_surface_->SetChildId(child_surface_id_); | 94 viewport_surface_->SetChildId(child_surface_id_); |
| 96 } | 95 } |
| 97 | 96 |
| 98 void NativeViewportImpl::SetEventDispatcher( | 97 void NativeViewportImpl::SetEventDispatcher( |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 waiting_for_event_ack_ = false; | 159 waiting_for_event_ack_ = false; |
| 161 } | 160 } |
| 162 | 161 |
| 163 void NativeViewportImpl::ProcessOnMetricsChanged() { | 162 void NativeViewportImpl::ProcessOnMetricsChanged() { |
| 164 client()->OnMetricsChanged(metrics_.Clone()); | 163 client()->OnMetricsChanged(metrics_.Clone()); |
| 165 if (viewport_surface_) | 164 if (viewport_surface_) |
| 166 viewport_surface_->SetSize(metrics_->size.To<gfx::Size>()); | 165 viewport_surface_->SetSize(metrics_->size.To<gfx::Size>()); |
| 167 } | 166 } |
| 168 | 167 |
| 169 } // namespace native_viewport | 168 } // namespace native_viewport |
| OLD | NEW |