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

Unified Diff: mojo/services/view_manager/window_tree_host_impl.cc

Issue 534843002: Convert view manager to surfaces with uploading shim in client lib (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove overzealous shutdown check in cc/surfaces, add NON_EXPORTED_BASE for windows build, saturate… Created 6 years, 3 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 | « mojo/services/view_manager/window_tree_host_impl.h ('k') | mojo/shell/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/services/view_manager/window_tree_host_impl.cc
diff --git a/mojo/services/view_manager/window_tree_host_impl.cc b/mojo/services/view_manager/window_tree_host_impl.cc
deleted file mode 100644
index 805018bb1c3a470a4a1daaa018048ebbed1dfe1b..0000000000000000000000000000000000000000
--- a/mojo/services/view_manager/window_tree_host_impl.cc
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "mojo/public/c/gles2/gles2.h"
-#include "mojo/services/public/cpp/geometry/geometry_type_converters.h"
-#include "mojo/services/public/cpp/input_events/input_events_type_converters.h"
-#include "mojo/services/view_manager/connection_manager.h"
-#include "mojo/services/view_manager/context_factory_impl.h"
-#include "mojo/services/view_manager/window_tree_host_impl.h"
-#include "ui/aura/env.h"
-#include "ui/aura/layout_manager.h"
-#include "ui/aura/window.h"
-#include "ui/aura/window_event_dispatcher.h"
-#include "ui/compositor/compositor.h"
-#include "ui/events/event.h"
-#include "ui/events/event_constants.h"
-#include "ui/gfx/geometry/insets.h"
-#include "ui/gfx/geometry/rect.h"
-
-namespace mojo {
-namespace service {
-
-// TODO(sky): nuke this. It shouldn't be static.
-// static
-ContextFactoryImpl* WindowTreeHostImpl::context_factory_ = NULL;
-
-////////////////////////////////////////////////////////////////////////////////
-// RootLayoutManager, layout management for the root window's (one) child
-
-class RootLayoutManager : public aura::LayoutManager {
- public:
- RootLayoutManager() : child_(NULL) {}
-
- // Overridden from aura::LayoutManager
- virtual void OnWindowResized() OVERRIDE;
- virtual void OnWindowAddedToLayout(aura::Window* child) OVERRIDE;
- virtual void OnWillRemoveWindowFromLayout(aura::Window* child) OVERRIDE {}
- virtual void OnWindowRemovedFromLayout(aura::Window* child) OVERRIDE {}
- virtual void OnChildWindowVisibilityChanged(aura::Window* child,
- bool visible) OVERRIDE {}
- virtual void SetChildBounds(aura::Window* child,
- const gfx::Rect& requested_bounds) OVERRIDE;
- private:
- aura::Window* child_;
-
- DISALLOW_COPY_AND_ASSIGN(RootLayoutManager);
-};
-
-void RootLayoutManager::OnWindowResized() {
- if (child_)
- child_->SetBounds(gfx::Rect(child_->parent()->bounds().size()));
-}
-
-void RootLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
- DCHECK(!child_);
- child_ = child;
-}
-
-void RootLayoutManager::SetChildBounds(aura::Window* child,
- const gfx::Rect& requested_bounds) {
- SetChildBoundsDirect(child, gfx::Rect(requested_bounds.size()));
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowTreeHostImpl, public:
-
-WindowTreeHostImpl::WindowTreeHostImpl(
- NativeViewportPtr viewport,
- GpuPtr gpu_service,
- const gfx::Rect& bounds,
- const Callback<void()>& compositor_created_callback,
- const Callback<void()>& native_viewport_closed_callback,
- const Callback<void(EventPtr)>& event_received_callback)
- : native_viewport_(viewport.Pass()),
- gpu_service_(gpu_service.Pass()),
- widget_(gfx::kNullAcceleratedWidget),
- compositor_created_callback_(compositor_created_callback),
- native_viewport_closed_callback_(native_viewport_closed_callback),
- event_received_callback_(event_received_callback),
- bounds_(bounds) {
- native_viewport_.set_client(this);
- native_viewport_->Create(Rect::From(bounds));
- native_viewport_->Show();
-
- window()->SetLayoutManager(new RootLayoutManager());
-}
-
-WindowTreeHostImpl::~WindowTreeHostImpl() {
- DestroyCompositor();
- DestroyDispatcher();
- delete context_factory_;
- context_factory_ = NULL;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowTreeHostImpl, aura::WindowTreeHost implementation:
-
-ui::EventSource* WindowTreeHostImpl::GetEventSource() {
- return this;
-}
-
-gfx::AcceleratedWidget WindowTreeHostImpl::GetAcceleratedWidget() {
- return widget_;
-}
-
-void WindowTreeHostImpl::Show() {
- window()->Show();
-}
-
-void WindowTreeHostImpl::Hide() {
- native_viewport_->Hide();
- window()->Hide();
-}
-
-gfx::Rect WindowTreeHostImpl::GetBounds() const {
- return bounds_;
-}
-
-void WindowTreeHostImpl::SetBounds(const gfx::Rect& bounds) {
- native_viewport_->SetBounds(Rect::From(bounds));
-}
-
-gfx::Point WindowTreeHostImpl::GetLocationOnNativeScreen() const {
- return gfx::Point(0, 0);
-}
-
-void WindowTreeHostImpl::SetCapture() {
- NOTIMPLEMENTED();
-}
-
-void WindowTreeHostImpl::ReleaseCapture() {
- NOTIMPLEMENTED();
-}
-
-void WindowTreeHostImpl::PostNativeEvent(
- const base::NativeEvent& native_event) {
- NOTIMPLEMENTED();
-}
-
-void WindowTreeHostImpl::SetCursorNative(gfx::NativeCursor cursor) {
- NOTIMPLEMENTED();
-}
-
-void WindowTreeHostImpl::MoveCursorToNative(const gfx::Point& location) {
- NOTIMPLEMENTED();
-}
-
-void WindowTreeHostImpl::OnCursorVisibilityChangedNative(bool show) {
- NOTIMPLEMENTED();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowTreeHostImpl, ui::EventSource implementation:
-
-ui::EventProcessor* WindowTreeHostImpl::GetEventProcessor() {
- return dispatcher();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WindowTreeHostImpl, NativeViewportClient implementation:
-
-void WindowTreeHostImpl::OnCreated(uint64_t native_viewport_id) {
- CommandBufferPtr cb;
- // TODO(jamesr): Output to a surface instead.
- gpu_service_->CreateOnscreenGLES2Context(
- native_viewport_id, Size::From(bounds_.size()), Get(&cb));
- widget_ = bit_cast<gfx::AcceleratedWidget>(
- static_cast<uintptr_t>(native_viewport_id));
-
- // The ContextFactory must exist before any Compositors are created.
- if (context_factory_) {
- delete context_factory_;
- context_factory_ = NULL;
- }
- context_factory_ = new ContextFactoryImpl(cb.PassMessagePipe());
- aura::Env::GetInstance()->set_context_factory(context_factory_);
-
- CreateCompositor(gfx::kNullAcceleratedWidget);
- compositor_created_callback_.Run();
-}
-
-void WindowTreeHostImpl::OnBoundsChanged(RectPtr bounds) {
- bounds_ = bounds.To<gfx::Rect>();
- if (context_factory_)
- OnHostResized(bounds_.size());
-}
-
-void WindowTreeHostImpl::OnDestroyed() {
- DestroyCompositor();
- native_viewport_closed_callback_.Run();
- // TODO(beng): quit the message loop once we are on our own thread.
-}
-
-void WindowTreeHostImpl::OnEvent(EventPtr event,
- const mojo::Callback<void()>& callback) {
- event_received_callback_.Run(event.Pass());
- callback.Run();
-};
-
-} // namespace service
-} // namespace mojo
« no previous file with comments | « mojo/services/view_manager/window_tree_host_impl.h ('k') | mojo/shell/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698