| Index: cc/surfaces/direct_compositor_frame_sink.cc
|
| diff --git a/cc/surfaces/surface_display_output_surface.cc b/cc/surfaces/direct_compositor_frame_sink.cc
|
| similarity index 72%
|
| rename from cc/surfaces/surface_display_output_surface.cc
|
| rename to cc/surfaces/direct_compositor_frame_sink.cc
|
| index d1bb3cdf7398ecd60d88d781f75c32efe96723c5..7d79f442a67e5ebb2d9eec74dc49a3fbc302824d 100644
|
| --- a/cc/surfaces/surface_display_output_surface.cc
|
| +++ b/cc/surfaces/direct_compositor_frame_sink.cc
|
| @@ -2,10 +2,11 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "cc/surfaces/surface_display_output_surface.h"
|
| +#include "cc/surfaces/direct_compositor_frame_sink.h"
|
|
|
| #include "base/bind.h"
|
| #include "cc/output/compositor_frame.h"
|
| +#include "cc/output/compositor_frame_sink_client.h"
|
| #include "cc/surfaces/display.h"
|
| #include "cc/surfaces/surface.h"
|
| #include "cc/surfaces/surface_id_allocator.h"
|
| @@ -13,15 +14,15 @@
|
|
|
| namespace cc {
|
|
|
| -SurfaceDisplayOutputSurface::SurfaceDisplayOutputSurface(
|
| +DirectCompositorFrameSink::DirectCompositorFrameSink(
|
| SurfaceManager* surface_manager,
|
| SurfaceIdAllocator* surface_id_allocator,
|
| Display* display,
|
| scoped_refptr<ContextProvider> context_provider,
|
| scoped_refptr<ContextProvider> worker_context_provider)
|
| - : OutputSurface(std::move(context_provider),
|
| - std::move(worker_context_provider),
|
| - nullptr),
|
| + : CompositorFrameSink(std::move(context_provider),
|
| + std::move(worker_context_provider),
|
| + nullptr),
|
| surface_manager_(surface_manager),
|
| surface_id_allocator_(surface_id_allocator),
|
| display_(display),
|
| @@ -31,18 +32,18 @@ SurfaceDisplayOutputSurface::SurfaceDisplayOutputSurface(
|
| capabilities_.adjust_deadline_for_parent = true;
|
| capabilities_.can_force_reclaim_resources = true;
|
|
|
| - // Display and SurfaceDisplayOutputSurface share a GL context, so sync
|
| + // Display and DirectCompositorFrameSink share a GL context, so sync
|
| // points aren't needed when passing resources between them.
|
| capabilities_.delegated_sync_points_required = false;
|
| factory_.set_needs_sync_points(false);
|
| }
|
|
|
| -SurfaceDisplayOutputSurface::SurfaceDisplayOutputSurface(
|
| +DirectCompositorFrameSink::DirectCompositorFrameSink(
|
| SurfaceManager* surface_manager,
|
| SurfaceIdAllocator* surface_id_allocator,
|
| Display* display,
|
| scoped_refptr<VulkanContextProvider> vulkan_context_provider)
|
| - : OutputSurface(std::move(vulkan_context_provider)),
|
| + : CompositorFrameSink(std::move(vulkan_context_provider)),
|
| surface_manager_(surface_manager),
|
| surface_id_allocator_(surface_id_allocator),
|
| display_(display),
|
| @@ -53,13 +54,13 @@ SurfaceDisplayOutputSurface::SurfaceDisplayOutputSurface(
|
| capabilities_.can_force_reclaim_resources = true;
|
| }
|
|
|
| -SurfaceDisplayOutputSurface::~SurfaceDisplayOutputSurface() {
|
| +DirectCompositorFrameSink::~DirectCompositorFrameSink() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| if (HasClient())
|
| DetachFromClient();
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::SwapBuffers(CompositorFrame frame) {
|
| +void DirectCompositorFrameSink::SwapBuffers(CompositorFrame frame) {
|
| gfx::Size frame_size =
|
| frame.delegated_frame_data->render_pass_list.back()->output_rect.size();
|
| if (frame_size.IsEmpty() || frame_size != last_swap_frame_size_) {
|
| @@ -75,17 +76,18 @@ void SurfaceDisplayOutputSurface::SwapBuffers(CompositorFrame frame) {
|
|
|
| factory_.SubmitCompositorFrame(
|
| delegated_surface_id_, std::move(frame),
|
| - base::Bind(&SurfaceDisplayOutputSurface::DidDrawCallback,
|
| + base::Bind(&DirectCompositorFrameSink::DidDrawCallback,
|
| base::Unretained(this)));
|
| }
|
|
|
| -bool SurfaceDisplayOutputSurface::BindToClient(OutputSurfaceClient* client) {
|
| +bool DirectCompositorFrameSink::BindToClient(
|
| + CompositorFrameSinkClient* client) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| surface_manager_->RegisterSurfaceFactoryClient(
|
| surface_id_allocator_->client_id(), this);
|
|
|
| - if (!OutputSurface::BindToClient(client))
|
| + if (!CompositorFrameSink::BindToClient(client))
|
| return false;
|
|
|
| // We want the Display's output surface to hear about lost context, and since
|
| @@ -101,14 +103,14 @@ bool SurfaceDisplayOutputSurface::BindToClient(OutputSurfaceClient* client) {
|
| return true;
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::ForceReclaimResources() {
|
| +void DirectCompositorFrameSink::ForceReclaimResources() {
|
| if (!delegated_surface_id_.is_null()) {
|
| factory_.SubmitCompositorFrame(delegated_surface_id_, CompositorFrame(),
|
| SurfaceFactory::DrawCallback());
|
| }
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::DetachFromClient() {
|
| +void DirectCompositorFrameSink::DetachFromClient() {
|
| DCHECK(HasClient());
|
| // Unregister the SurfaceFactoryClient here instead of the dtor so that only
|
| // one client is alive for this namespace at any given time.
|
| @@ -117,52 +119,52 @@ void SurfaceDisplayOutputSurface::DetachFromClient() {
|
| if (!delegated_surface_id_.is_null())
|
| factory_.Destroy(delegated_surface_id_);
|
|
|
| - OutputSurface::DetachFromClient();
|
| + CompositorFrameSink::DetachFromClient();
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::BindFramebuffer() {
|
| - // This is a delegating output surface, no framebuffer/direct drawing support.
|
| +void DirectCompositorFrameSink::BindFramebuffer() {
|
| + // This is a CompositorFrameSink, no framebuffer/direct drawing support.
|
| NOTREACHED();
|
| }
|
|
|
| -uint32_t SurfaceDisplayOutputSurface::GetFramebufferCopyTextureFormat() {
|
| - // This is a delegating output surface, no framebuffer/direct drawing support.
|
| +uint32_t DirectCompositorFrameSink::GetFramebufferCopyTextureFormat() {
|
| + // This is a CompositorFrameSink, no framebuffer/direct drawing support.
|
| NOTREACHED();
|
| return 0;
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::ReturnResources(
|
| +void DirectCompositorFrameSink::ReturnResources(
|
| const ReturnedResourceArray& resources) {
|
| if (client_)
|
| client_->ReclaimResources(resources);
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::SetBeginFrameSource(
|
| +void DirectCompositorFrameSink::SetBeginFrameSource(
|
| BeginFrameSource* begin_frame_source) {
|
| DCHECK(client_);
|
| client_->SetBeginFrameSource(begin_frame_source);
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::DisplayOutputSurfaceLost() {
|
| - output_surface_lost_ = true;
|
| - client_->DidLoseOutputSurface();
|
| +void DirectCompositorFrameSink::DisplayOutputSurfaceLost() {
|
| + is_lost_ = true;
|
| + client_->DidLoseCompositorFrameSink();
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::DisplayWillDrawAndSwap(
|
| +void DirectCompositorFrameSink::DisplayWillDrawAndSwap(
|
| bool will_draw_and_swap,
|
| const RenderPassList& render_passes) {
|
| // This notification is not relevant to our client outside of tests.
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::DisplayDidDrawAndSwap() {
|
| +void DirectCompositorFrameSink::DisplayDidDrawAndSwap() {
|
| // This notification is not relevant to our client outside of tests. We
|
| // unblock the client from DidDrawCallback() when the surface is going to
|
| // be drawn.
|
| }
|
|
|
| -void SurfaceDisplayOutputSurface::DidDrawCallback() {
|
| +void DirectCompositorFrameSink::DidDrawCallback() {
|
| // TODO(danakj): Why the lost check?
|
| - if (!output_surface_lost_)
|
| + if (!is_lost_)
|
| client_->DidSwapBuffersComplete();
|
| }
|
|
|
|
|