Index: components/mus/ws/server_window_surface.cc |
diff --git a/components/mus/ws/server_window_surface.cc b/components/mus/ws/server_window_surface.cc |
deleted file mode 100644 |
index d03bc5bd789c5521f8aa059f49aa16c7e2c72ad6..0000000000000000000000000000000000000000 |
--- a/components/mus/ws/server_window_surface.cc |
+++ /dev/null |
@@ -1,110 +0,0 @@ |
-// Copyright 2015 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 "components/mus/ws/server_window_surface.h" |
- |
-#include "base/callback.h" |
-#include "cc/output/compositor_frame.h" |
-#include "cc/quads/shared_quad_state.h" |
-#include "cc/quads/surface_draw_quad.h" |
-#include "components/mus/surfaces/surfaces_state.h" |
-#include "components/mus/ws/server_window.h" |
-#include "components/mus/ws/server_window_delegate.h" |
-#include "components/mus/ws/server_window_surface_manager.h" |
- |
-namespace mus { |
-namespace ws { |
-namespace { |
- |
-void CallCallback(const base::Closure& callback, cc::SurfaceDrawStatus status) { |
- callback.Run(); |
-} |
- |
-} // namespace |
- |
-ServerWindowSurface::ServerWindowSurface( |
- ServerWindowSurfaceManager* manager, |
- mojo::InterfaceRequest<Surface> request, |
- mojom::SurfaceClientPtr client) |
- : manager_(manager), |
- surface_id_(manager->GenerateId()), |
- surface_factory_(manager_->GetSurfaceManager(), this), |
- client_(std::move(client)), |
- binding_(this, std::move(request)), |
- registered_surface_factory_client_(false) { |
- surface_factory_.Create(surface_id_); |
-} |
- |
-ServerWindowSurface::~ServerWindowSurface() { |
- // SurfaceFactory's destructor will attempt to return resources which will |
- // call back into here and access |client_| so we should destroy |
- // |surface_factory_|'s resources early on. |
- surface_factory_.DestroyAll(); |
- |
- if (registered_surface_factory_client_) { |
- cc::SurfaceManager* surface_manager = manager_->GetSurfaceManager(); |
- surface_manager->UnregisterSurfaceFactoryClient(manager_->id_namespace()); |
- } |
-} |
- |
-void ServerWindowSurface::SubmitCompositorFrame( |
- cc::CompositorFrame frame, |
- const SubmitCompositorFrameCallback& callback) { |
- gfx::Size frame_size = |
- frame.delegated_frame_data->render_pass_list[0]->output_rect.size(); |
- if (!surface_id_.is_null()) { |
- // If the size of the CompostiorFrame has changed then destroy the existing |
- // Surface and create a new one of the appropriate size. |
- if (frame_size != last_submitted_frame_size_) { |
- // Rendering of the topmost frame happens in two phases. First the frame |
- // is generated and submitted, and a later date it is actually drawn. |
- // During the time the frame is generated and drawn we can't destroy the |
- // surface, otherwise when drawn you get an empty surface. To deal with |
- // this we schedule destruction via the delegate. The delegate will call |
- // us back when we're not waiting on a frame to be drawn (which may be |
- // synchronously). |
- surfaces_scheduled_for_destruction_.insert(surface_id_); |
- window()->delegate()->ScheduleSurfaceDestruction(window()); |
- surface_id_ = manager_->GenerateId(); |
- surface_factory_.Create(surface_id_); |
- } |
- } |
- surface_factory_.SubmitCompositorFrame(surface_id_, std::move(frame), |
- base::Bind(&CallCallback, callback)); |
- last_submitted_frame_size_ = frame_size; |
- window()->delegate()->OnScheduleWindowPaint(window()); |
-} |
- |
-void ServerWindowSurface::DestroySurfacesScheduledForDestruction() { |
- std::set<cc::SurfaceId> surfaces; |
- surfaces.swap(surfaces_scheduled_for_destruction_); |
- for (auto& id : surfaces) |
- surface_factory_.Destroy(id); |
-} |
- |
-void ServerWindowSurface::RegisterForBeginFrames() { |
- DCHECK(!registered_surface_factory_client_); |
- registered_surface_factory_client_ = true; |
- cc::SurfaceManager* surface_manager = manager_->GetSurfaceManager(); |
- surface_manager->RegisterSurfaceFactoryClient(manager_->id_namespace(), this); |
-} |
- |
-ServerWindow* ServerWindowSurface::window() { |
- return manager_->window(); |
-} |
- |
-void ServerWindowSurface::ReturnResources( |
- const cc::ReturnedResourceArray& resources) { |
- if (!client_ || !base::MessageLoop::current()) |
- return; |
- client_->ReturnResources(mojo::Array<cc::ReturnedResource>::From(resources)); |
-} |
- |
-void ServerWindowSurface::SetBeginFrameSource( |
- cc::BeginFrameSource* begin_frame_source) { |
- // TODO(tansell): Implement this. |
-} |
- |
-} // namespace ws |
-} // namespace mus |