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

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

Issue 754433003: Update from https://crrev.com/305340 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « cc/surfaces/display.h ('k') | cc/surfaces/surface_aggregator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/display.h" 5 #include "cc/surfaces/display.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "cc/debug/benchmark_instrumentation.h" 9 #include "cc/debug/benchmark_instrumentation.h"
10 #include "cc/output/compositor_frame.h" 10 #include "cc/output/compositor_frame.h"
11 #include "cc/output/compositor_frame_ack.h" 11 #include "cc/output/compositor_frame_ack.h"
12 #include "cc/output/direct_renderer.h" 12 #include "cc/output/direct_renderer.h"
13 #include "cc/output/gl_renderer.h" 13 #include "cc/output/gl_renderer.h"
14 #include "cc/output/renderer_settings.h"
14 #include "cc/output/software_renderer.h" 15 #include "cc/output/software_renderer.h"
15 #include "cc/resources/texture_mailbox_deleter.h" 16 #include "cc/resources/texture_mailbox_deleter.h"
16 #include "cc/surfaces/display_client.h" 17 #include "cc/surfaces/display_client.h"
17 #include "cc/surfaces/surface.h" 18 #include "cc/surfaces/surface.h"
18 #include "cc/surfaces/surface_aggregator.h" 19 #include "cc/surfaces/surface_aggregator.h"
19 #include "cc/surfaces/surface_manager.h" 20 #include "cc/surfaces/surface_manager.h"
20 #include "cc/trees/blocking_task_runner.h" 21 #include "cc/trees/blocking_task_runner.h"
21 22
22 namespace cc { 23 namespace cc {
23 24
24 Display::Display(DisplayClient* client, 25 Display::Display(DisplayClient* client,
25 SurfaceManager* manager, 26 SurfaceManager* manager,
26 SharedBitmapManager* bitmap_manager, 27 SharedBitmapManager* bitmap_manager,
27 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager) 28 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
29 const RendererSettings& settings)
28 : client_(client), 30 : client_(client),
29 manager_(manager), 31 manager_(manager),
30 bitmap_manager_(bitmap_manager), 32 bitmap_manager_(bitmap_manager),
31 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), 33 gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
34 settings_(settings),
32 device_scale_factor_(1.f), 35 device_scale_factor_(1.f),
33 blocking_main_thread_task_runner_( 36 blocking_main_thread_task_runner_(
34 BlockingTaskRunner::Create(base::MessageLoopProxy::current())), 37 BlockingTaskRunner::Create(base::MessageLoopProxy::current())),
35 texture_mailbox_deleter_( 38 texture_mailbox_deleter_(
36 new TextureMailboxDeleter(base::MessageLoopProxy::current())) { 39 new TextureMailboxDeleter(base::MessageLoopProxy::current())) {
37 manager_->AddObserver(this); 40 manager_->AddObserver(this);
38 } 41 }
39 42
40 Display::~Display() { 43 Display::~Display() {
41 manager_->RemoveObserver(this); 44 manager_->RemoveObserver(this);
(...skipping 10 matching lines...) Expand all
52 current_surface_id_ = id; 55 current_surface_id_ = id;
53 current_surface_size_ = size; 56 current_surface_size_ = size;
54 device_scale_factor_ = device_scale_factor; 57 device_scale_factor_ = device_scale_factor;
55 client_->DisplayDamaged(); 58 client_->DisplayDamaged();
56 } 59 }
57 60
58 void Display::InitializeRenderer() { 61 void Display::InitializeRenderer() {
59 if (resource_provider_) 62 if (resource_provider_)
60 return; 63 return;
61 64
62 int highp_threshold_min = 0; 65 scoped_ptr<ResourceProvider> resource_provider = ResourceProvider::Create(
63 bool use_rgba_4444_texture_format = false; 66 output_surface_.get(), bitmap_manager_, gpu_memory_buffer_manager_,
64 size_t id_allocation_chunk_size = 1; 67 blocking_main_thread_task_runner_.get(), settings_.highp_threshold_min,
65 scoped_ptr<ResourceProvider> resource_provider = 68 settings_.use_rgba_4444_textures,
66 ResourceProvider::Create(output_surface_.get(), 69 settings_.texture_id_allocation_chunk_size);
67 bitmap_manager_,
68 gpu_memory_buffer_manager_,
69 blocking_main_thread_task_runner_.get(),
70 highp_threshold_min,
71 use_rgba_4444_texture_format,
72 id_allocation_chunk_size);
73 if (!resource_provider) 70 if (!resource_provider)
74 return; 71 return;
75 72
76 if (output_surface_->context_provider()) { 73 if (output_surface_->context_provider()) {
77 scoped_ptr<GLRenderer> renderer = 74 scoped_ptr<GLRenderer> renderer = GLRenderer::Create(
78 GLRenderer::Create(this, 75 this, &settings_, output_surface_.get(), resource_provider.get(),
79 &settings_, 76 texture_mailbox_deleter_.get(), settings_.highp_threshold_min);
80 output_surface_.get(),
81 resource_provider.get(),
82 texture_mailbox_deleter_.get(),
83 highp_threshold_min);
84 if (!renderer) 77 if (!renderer)
85 return; 78 return;
86 renderer_ = renderer.Pass(); 79 renderer_ = renderer.Pass();
87 } else { 80 } else {
88 scoped_ptr<SoftwareRenderer> renderer = SoftwareRenderer::Create( 81 scoped_ptr<SoftwareRenderer> renderer = SoftwareRenderer::Create(
89 this, &settings_, output_surface_.get(), resource_provider.get()); 82 this, &settings_, output_surface_.get(), resource_provider.get());
90 if (!renderer) 83 if (!renderer)
91 return; 84 return;
92 renderer_ = renderer.Pass(); 85 renderer_ = renderer.Pass();
93 } 86 }
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 return current_surface_id_; 160 return current_surface_id_;
168 } 161 }
169 162
170 int Display::GetMaxFramesPending() { 163 int Display::GetMaxFramesPending() {
171 if (!output_surface_) 164 if (!output_surface_)
172 return OutputSurface::DEFAULT_MAX_FRAMES_PENDING; 165 return OutputSurface::DEFAULT_MAX_FRAMES_PENDING;
173 return output_surface_->capabilities().max_frames_pending; 166 return output_surface_->capabilities().max_frames_pending;
174 } 167 }
175 168
176 } // namespace cc 169 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/display.h ('k') | cc/surfaces/surface_aggregator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698