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

Unified Diff: cc/surfaces/display.cc

Issue 1535833002: Delete CC. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-5
Patch Set: rebase Created 4 years, 11 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 | « cc/surfaces/display.h ('k') | cc/surfaces/display_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/surfaces/display.cc
diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
deleted file mode 100644
index d35271272c2598ad4e9c02924e979a3a4a170d22..0000000000000000000000000000000000000000
--- a/cc/surfaces/display.cc
+++ /dev/null
@@ -1,219 +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 "cc/surfaces/display.h"
-
-#include "base/message_loop/message_loop.h"
-#include "base/trace_event/trace_event.h"
-#include "cc/output/compositor_frame.h"
-#include "cc/output/compositor_frame_ack.h"
-#include "cc/output/direct_renderer.h"
-#include "cc/output/gl_renderer.h"
-#include "cc/output/renderer_settings.h"
-#include "cc/output/software_renderer.h"
-#include "cc/resources/texture_mailbox_deleter.h"
-#include "cc/surfaces/display_client.h"
-#include "cc/surfaces/surface.h"
-#include "cc/surfaces/surface_aggregator.h"
-#include "cc/surfaces/surface_manager.h"
-
-namespace cc {
-
-Display::Display(DisplayClient* client,
- SurfaceManager* manager,
- SharedBitmapManager* bitmap_manager,
- gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
- const RendererSettings& settings)
- : client_(client),
- manager_(manager),
- bitmap_manager_(bitmap_manager),
- gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
- settings_(settings),
- device_scale_factor_(1.f),
- texture_mailbox_deleter_(
- new TextureMailboxDeleter(base::MessageLoopProxy::current())) {
- manager_->AddObserver(this);
-}
-
-Display::~Display() {
- manager_->RemoveObserver(this);
- if (aggregator_) {
- for (const auto& id_entry : aggregator_->previous_contained_surfaces()) {
- Surface* surface = manager_->GetSurfaceForId(id_entry.first);
- if (surface)
- surface->RunDrawCallbacks(SurfaceDrawStatus::DRAW_SKIPPED);
- }
- }
-}
-
-bool Display::Initialize(scoped_ptr<OutputSurface> output_surface) {
- output_surface_ = output_surface.Pass();
- return output_surface_->BindToClient(this);
-}
-
-void Display::SetSurfaceId(SurfaceId id, float device_scale_factor) {
- current_surface_id_ = id;
- device_scale_factor_ = device_scale_factor;
- client_->DisplayDamaged();
-}
-
-void Display::Resize(const gfx::Size& size) {
- if (size == current_surface_size_)
- return;
- // Need to ensure all pending swaps have executed before the window is
- // resized, or D3D11 will scale the swap output.
- if (renderer_ && settings_.finish_rendering_on_resize)
- renderer_->Finish();
- current_surface_size_ = size;
- client_->DisplayDamaged();
-}
-
-void Display::InitializeRenderer() {
- if (resource_provider_)
- return;
-
- scoped_ptr<ResourceProvider> resource_provider = ResourceProvider::Create(
- output_surface_.get(), bitmap_manager_, gpu_memory_buffer_manager_,
- nullptr, settings_.highp_threshold_min, settings_.use_rgba_4444_textures,
- settings_.texture_id_allocation_chunk_size);
- if (!resource_provider)
- return;
-
- if (output_surface_->context_provider()) {
- scoped_ptr<GLRenderer> renderer = GLRenderer::Create(
- this, &settings_, output_surface_.get(), resource_provider.get(),
- texture_mailbox_deleter_.get(), settings_.highp_threshold_min);
- if (!renderer)
- return;
- renderer_ = renderer.Pass();
- } else {
- scoped_ptr<SoftwareRenderer> renderer = SoftwareRenderer::Create(
- this, &settings_, output_surface_.get(), resource_provider.get());
- if (!renderer)
- return;
- renderer_ = renderer.Pass();
- }
-
- resource_provider_ = resource_provider.Pass();
- aggregator_.reset(new SurfaceAggregator(manager_, resource_provider_.get()));
-}
-
-void Display::DidLoseOutputSurface() {
- client_->OutputSurfaceLost();
-}
-
-bool Display::Draw() {
- if (current_surface_id_.is_null())
- return false;
-
- InitializeRenderer();
- if (!output_surface_)
- return false;
-
- // TODO(skyostil): We should hold a BlockingTaskRunner::CapturePostTasks
- // while Aggregate is called to immediately run release callbacks afterward.
- scoped_ptr<CompositorFrame> frame =
- aggregator_->Aggregate(current_surface_id_);
- if (!frame)
- return false;
-
- TRACE_EVENT0("cc", "Display::Draw");
-
- // Run callbacks early to allow pipelining.
- for (const auto& id_entry : aggregator_->previous_contained_surfaces()) {
- Surface* surface = manager_->GetSurfaceForId(id_entry.first);
- if (surface)
- surface->RunDrawCallbacks(SurfaceDrawStatus::DRAWN);
- }
- DelegatedFrameData* frame_data = frame->delegated_frame_data.get();
-
- frame->metadata.latency_info.insert(frame->metadata.latency_info.end(),
- stored_latency_info_.begin(),
- stored_latency_info_.end());
- stored_latency_info_.clear();
- bool have_copy_requests = false;
- for (const auto* pass : frame_data->render_pass_list) {
- have_copy_requests |= !pass->copy_requests.empty();
- }
-
- gfx::Size surface_size;
- bool have_damage = false;
- if (!frame_data->render_pass_list.empty()) {
- surface_size = frame_data->render_pass_list.back()->output_rect.size();
- have_damage =
- !frame_data->render_pass_list.back()->damage_rect.size().IsEmpty();
- }
- bool avoid_swap = surface_size != current_surface_size_;
- bool should_draw = !frame->metadata.latency_info.empty() ||
- have_copy_requests || (have_damage && !avoid_swap);
-
- if (should_draw) {
- gfx::Rect device_viewport_rect = gfx::Rect(current_surface_size_);
- gfx::Rect device_clip_rect = device_viewport_rect;
- bool disable_picture_quad_image_filtering = false;
-
- renderer_->DecideRenderPassAllocationsForFrame(
- frame_data->render_pass_list);
- renderer_->DrawFrame(&frame_data->render_pass_list, device_scale_factor_,
- device_viewport_rect, device_clip_rect,
- disable_picture_quad_image_filtering);
- }
-
- if (should_draw && !avoid_swap) {
- renderer_->SwapBuffers(frame->metadata);
- } else {
- stored_latency_info_.insert(stored_latency_info_.end(),
- frame->metadata.latency_info.begin(),
- frame->metadata.latency_info.end());
- DidSwapBuffers();
- DidSwapBuffersComplete();
- }
-
- return true;
-}
-
-void Display::DidSwapBuffers() {
- client_->DidSwapBuffers();
-}
-
-void Display::DidSwapBuffersComplete() {
- client_->DidSwapBuffersComplete();
-}
-
-void Display::CommitVSyncParameters(base::TimeTicks timebase,
- base::TimeDelta interval) {
- client_->CommitVSyncParameters(timebase, interval);
-}
-
-void Display::OnSurfaceDamaged(SurfaceId surface_id, bool* changed) {
- if (aggregator_ &&
- aggregator_->previous_contained_surfaces().count(surface_id)) {
- Surface* surface = manager_->GetSurfaceForId(surface_id);
- if (surface) {
- const CompositorFrame* current_frame = surface->GetEligibleFrame();
- if (!current_frame || !current_frame->delegated_frame_data ||
- !current_frame->delegated_frame_data->resource_list.size())
- aggregator_->ReleaseResources(surface_id);
- }
- client_->DisplayDamaged();
- *changed = true;
- } else if (surface_id == current_surface_id_) {
- client_->DisplayDamaged();
- *changed = true;
- }
-}
-
-SurfaceId Display::CurrentSurfaceId() {
- return current_surface_id_;
-}
-
-int Display::GetMaxFramesPending() {
- int max_frames_pending =
- output_surface_ ? output_surface_->capabilities().max_frames_pending : 0;
- if (max_frames_pending <= 0)
- max_frames_pending = OutputSurface::DEFAULT_MAX_FRAMES_PENDING;
- return max_frames_pending;
-}
-
-} // namespace cc
« no previous file with comments | « cc/surfaces/display.h ('k') | cc/surfaces/display_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698