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

Side by Side Diff: cc/surfaces/onscreen_display_client.cc

Issue 1304063014: cc: Plumbing for BeginFrameSource based on Surfaces (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More use-after-free. Attempt to fix mojo. Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/surfaces/onscreen_display_client.h" 5 #include "cc/surfaces/onscreen_display_client.h"
6 6
7 #include "base/trace_event/trace_event.h" 7 #include "base/trace_event/trace_event.h"
8 #include "cc/output/output_surface.h" 8 #include "cc/output/output_surface.h"
9 #include "cc/scheduler/begin_frame_source.h" 9 #include "cc/scheduler/begin_frame_source.h"
10 #include "cc/surfaces/display_scheduler.h" 10 #include "cc/surfaces/display_scheduler.h"
11 #include "cc/surfaces/surface_display_output_surface.h" 11 #include "cc/surfaces/surface_display_output_surface.h"
12 #include "cc/surfaces/surface_factory.h" 12 #include "cc/surfaces/surface_factory.h"
13 #include "cc/surfaces/surface_manager.h" 13 #include "cc/surfaces/surface_manager.h"
14 14
15 namespace cc { 15 namespace cc {
16 16
17 OnscreenDisplayClient::OnscreenDisplayClient( 17 OnscreenDisplayClient::OnscreenDisplayClient(
18 scoped_ptr<OutputSurface> output_surface, 18 scoped_ptr<OutputSurface> output_surface,
19 SurfaceManager* manager, 19 SurfaceManager* manager,
20 SharedBitmapManager* bitmap_manager, 20 SharedBitmapManager* bitmap_manager,
21 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 21 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
22 const RendererSettings& settings, 22 const RendererSettings& settings,
23 scoped_refptr<base::SingleThreadTaskRunner> task_runner) 23 scoped_refptr<base::SingleThreadTaskRunner> task_runner)
24 : output_surface_(output_surface.Pass()), 24 : output_surface_(output_surface.Pass()),
25 task_runner_(task_runner),
25 display_(new Display(this, 26 display_(new Display(this,
26 manager, 27 manager,
27 bitmap_manager, 28 bitmap_manager,
28 gpu_memory_buffer_manager, 29 gpu_memory_buffer_manager,
29 settings)), 30 settings)),
30 task_runner_(task_runner),
31 output_surface_lost_(false), 31 output_surface_lost_(false),
32 disable_display_vsync_(settings.disable_display_vsync) { 32 disable_display_vsync_(settings.disable_display_vsync) {}
33 }
34 33
35 OnscreenDisplayClient::~OnscreenDisplayClient() { 34 OnscreenDisplayClient::~OnscreenDisplayClient() {
36 } 35 }
37 36
38 bool OnscreenDisplayClient::Initialize() { 37 bool OnscreenDisplayClient::Initialize() {
39 int max_frames_pending = 38 int max_frames_pending =
40 output_surface_ ? output_surface_->capabilities().max_frames_pending : 0; 39 output_surface_ ? output_surface_->capabilities().max_frames_pending : 0;
41 if (max_frames_pending <= 0) 40 if (max_frames_pending <= 0)
42 max_frames_pending = OutputSurface::DEFAULT_MAX_FRAMES_PENDING; 41 max_frames_pending = OutputSurface::DEFAULT_MAX_FRAMES_PENDING;
43 42
(...skipping 29 matching lines...) Expand all
73 void OnscreenDisplayClient::OutputSurfaceLost() { 72 void OnscreenDisplayClient::OutputSurfaceLost() {
74 output_surface_lost_ = true; 73 output_surface_lost_ = true;
75 surface_display_output_surface_->DidLoseOutputSurface(); 74 surface_display_output_surface_->DidLoseOutputSurface();
76 } 75 }
77 76
78 void OnscreenDisplayClient::SetMemoryPolicy(const ManagedMemoryPolicy& policy) { 77 void OnscreenDisplayClient::SetMemoryPolicy(const ManagedMemoryPolicy& policy) {
79 surface_display_output_surface_->SetMemoryPolicy(policy); 78 surface_display_output_surface_->SetMemoryPolicy(policy);
80 } 79 }
81 80
82 } // namespace cc 81 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698