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

Unified Diff: services/ui/public/cpp/output_surface.cc

Issue 2337913003: Fork cc::OutputSurface into cc::CompositorFrameSink. (Closed)
Patch Set: cfsfork: rebase Created 4 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
Index: services/ui/public/cpp/output_surface.cc
diff --git a/services/ui/public/cpp/output_surface.cc b/services/ui/public/cpp/output_surface.cc
deleted file mode 100644
index 82802cfdcdc34982ae0cd51cbd381678551e80fc..0000000000000000000000000000000000000000
--- a/services/ui/public/cpp/output_surface.cc
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2014 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 "services/ui/public/cpp/output_surface.h"
-
-#include "base/bind.h"
-#include "cc/output/compositor_frame.h"
-#include "cc/output/output_surface_client.h"
-#include "gpu/ipc/client/gpu_channel_host.h"
-#include "services/ui/public/cpp/context_provider.h"
-#include "services/ui/public/cpp/gpu_service.h"
-#include "services/ui/public/cpp/window_surface.h"
-
-namespace ui {
-
-OutputSurface::OutputSurface(
- scoped_refptr<gpu::GpuChannelHost> gpu_channel_host,
- std::unique_ptr<ui::WindowSurface> surface)
- : cc::OutputSurface(
- make_scoped_refptr(new ContextProvider(std::move(gpu_channel_host))),
- nullptr,
- nullptr),
- surface_(std::move(surface)) {
- capabilities_.delegated_rendering = true;
-}
-
-OutputSurface::~OutputSurface() {}
-
-bool OutputSurface::BindToClient(cc::OutputSurfaceClient* client) {
- surface_->BindToThread();
- surface_->set_client(this);
-
- // TODO(enne): Get this from the WindowSurface via ServerWindowSurface.
- begin_frame_source_.reset(new cc::DelayBasedBeginFrameSource(
- base::MakeUnique<cc::DelayBasedTimeSource>(
- base::ThreadTaskRunnerHandle::Get().get())));
-
- client->SetBeginFrameSource(begin_frame_source_.get());
- return cc::OutputSurface::BindToClient(client);
-}
-
-void OutputSurface::DetachFromClient() {
- client_->SetBeginFrameSource(nullptr);
- begin_frame_source_.reset();
- surface_.reset();
- cc::OutputSurface::DetachFromClient();
-}
-
-void OutputSurface::BindFramebuffer() {
- // This is a delegating output surface, no framebuffer/direct drawing support.
- NOTREACHED();
-}
-
-uint32_t OutputSurface::GetFramebufferCopyTextureFormat() {
- // This is a delegating output surface, no framebuffer/direct drawing support.
- NOTREACHED();
- return 0;
-}
-
-void OutputSurface::SwapBuffers(cc::CompositorFrame frame) {
- // OutputSurface owns WindowSurface, and so if OutputSurface is
- // destroyed then SubmitCompositorFrame's callback will never get called.
- // Thus, base::Unretained is safe here.
- surface_->SubmitCompositorFrame(
- std::move(frame),
- base::Bind(&OutputSurface::SwapBuffersComplete, base::Unretained(this)));
-}
-
-void OutputSurface::OnResourcesReturned(
- ui::WindowSurface* surface,
- mojo::Array<cc::ReturnedResource> resources) {
- client_->ReclaimResources(resources.To<cc::ReturnedResourceArray>());
-}
-
-void OutputSurface::SwapBuffersComplete() {
- client_->DidSwapBuffersComplete();
-}
-
-} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698