| Index: services/native_viewport/native_viewport_impl.cc
|
| diff --git a/services/native_viewport/native_viewport_impl.cc b/services/native_viewport/native_viewport_impl.cc
|
| index 2f957b775e2be25ce950db50e71e8ab253e283d2..ea70aab1dfc84c105df8d671aaf2115fd275944d 100644
|
| --- a/services/native_viewport/native_viewport_impl.cc
|
| +++ b/services/native_viewport/native_viewport_impl.cc
|
| @@ -15,6 +15,7 @@
|
| #include "mojo/public/cpp/application/application_delegate.h"
|
| #include "mojo/public/cpp/application/application_impl.h"
|
| #include "mojo/public/cpp/application/interface_factory.h"
|
| +#include "services/gles2/gpu_state.h"
|
| #include "services/native_viewport/platform_viewport_headless.h"
|
| #include "services/native_viewport/viewport_surface.h"
|
| #include "ui/events/event.h"
|
| @@ -33,8 +34,10 @@ bool IsRateLimitedEventType(ui::Event* event) {
|
| NativeViewportImpl::NativeViewportImpl(
|
| mojo::ApplicationImpl* app,
|
| bool is_headless,
|
| + const scoped_refptr<gles2::GpuState>& gpu_state,
|
| mojo::InterfaceRequest<mojo::NativeViewport> request)
|
| : is_headless_(is_headless),
|
| + context_provider_(gpu_state),
|
| widget_id_(0u),
|
| sent_metrics_(false),
|
| metrics_(mojo::ViewportMetrics::New()),
|
| @@ -53,10 +56,8 @@ NativeViewportImpl::~NativeViewportImpl() {
|
| platform_viewport_.reset();
|
| }
|
|
|
| -void NativeViewportImpl::Create(
|
| - mojo::SizePtr size,
|
| - const mojo::Callback<void(uint64_t, mojo::ViewportMetricsPtr metrics)>&
|
| - callback) {
|
| +void NativeViewportImpl::Create(mojo::SizePtr size,
|
| + const CreateCallback& callback) {
|
| create_callback_ = callback;
|
| metrics_->size = size.Clone();
|
| if (is_headless_)
|
| @@ -66,7 +67,8 @@ void NativeViewportImpl::Create(
|
| platform_viewport_->Init(gfx::Rect(size.To<gfx::Size>()));
|
| }
|
|
|
| -void NativeViewportImpl::RequestMetrics(const MetricsCallback& callback) {
|
| +void NativeViewportImpl::RequestMetrics(
|
| + const RequestMetricsCallback& callback) {
|
| if (!sent_metrics_) {
|
| callback.Run(metrics_.Clone());
|
| sent_metrics_ = true;
|
| @@ -92,6 +94,7 @@ void NativeViewportImpl::SetSize(mojo::SizePtr size) {
|
| platform_viewport_->SetBounds(gfx::Rect(size.To<gfx::Size>()));
|
| }
|
|
|
| +/*
|
| void NativeViewportImpl::SubmittedFrame(mojo::SurfaceIdPtr child_surface_id) {
|
| if (child_surface_id_.is_null()) {
|
| // If this is the first indication that the client will use surfaces,
|
| @@ -108,6 +111,12 @@ void NativeViewportImpl::SubmittedFrame(mojo::SurfaceIdPtr child_surface_id) {
|
| if (viewport_surface_)
|
| viewport_surface_->SetChildId(child_surface_id_);
|
| }
|
| +*/
|
| +
|
| +void NativeViewportImpl::GetContextProvider(
|
| + mojo::InterfaceRequest<mojo::ContextProvider> request) {
|
| + context_provider_.Bind(request.Pass());
|
| +}
|
|
|
| void NativeViewportImpl::SetEventDispatcher(
|
| mojo::NativeViewportEventDispatcherPtr dispatcher) {
|
| @@ -132,13 +141,16 @@ void NativeViewportImpl::OnMetricsChanged(mojo::ViewportMetricsPtr metrics) {
|
|
|
| void NativeViewportImpl::OnAcceleratedWidgetAvailable(
|
| gfx::AcceleratedWidget widget) {
|
| - widget_id_ = static_cast<uint64_t>(bit_cast<uintptr_t>(widget));
|
| - // TODO(jamesr): Remove once everything is converted to surfaces.
|
| - create_callback_.Run(widget_id_, metrics_.Clone());
|
| + context_provider_.SetAcceleratedWidget(widget);
|
| + create_callback_.Run(metrics_.Clone());
|
| sent_metrics_ = true;
|
| create_callback_.reset();
|
| + /*
|
| + widget_id_ = static_cast<uint64_t>(bit_cast<uintptr_t>(widget));
|
| + // TODO(jamesr): Remove once everything is converted to surfaces.
|
| if (viewport_surface_)
|
| viewport_surface_->SetWidgetId(widget_id_);
|
| + */
|
| }
|
|
|
| bool NativeViewportImpl::OnEvent(ui::Event* ui_event) {
|
|
|