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

Side by Side Diff: cc/output/delegating_renderer.cc

Issue 2253823002: cc: Remove all impl-side caps from RendererCapabilitiesImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@delete-renderer-base-class
Patch Set: renderercaps: ennereview Created 4 years, 4 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
« no previous file with comments | « cc/layers/picture_layer_impl_unittest.cc ('k') | cc/output/direct_renderer.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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/output/delegating_renderer.h" 5 #include "cc/output/delegating_renderer.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/trace_event/trace_event.h" 12 #include "base/trace_event/trace_event.h"
13 #include "cc/output/context_provider.h" 13 #include "cc/output/context_provider.h"
14 #include "cc/quads/draw_quad.h" 14 #include "cc/quads/draw_quad.h"
15 #include "cc/quads/render_pass.h" 15 #include "cc/quads/render_pass.h"
16 #include "cc/resources/resource_provider.h" 16 #include "cc/resources/resource_provider.h"
17 #include "gpu/command_buffer/client/context_support.h" 17 #include "gpu/command_buffer/client/context_support.h"
18 #include "gpu/command_buffer/client/gles2_interface.h" 18 #include "gpu/command_buffer/client/gles2_interface.h"
19 19
20 20
21 namespace cc { 21 namespace cc {
22 22
23 DelegatingRenderer::DelegatingRenderer(OutputSurface* output_surface, 23 DelegatingRenderer::DelegatingRenderer(OutputSurface* output_surface,
24 ResourceProvider* resource_provider) 24 ResourceProvider* resource_provider)
25 : output_surface_(output_surface), resource_provider_(resource_provider) { 25 : output_surface_(output_surface), resource_provider_(resource_provider) {
26 DCHECK(resource_provider_); 26 DCHECK(resource_provider_);
27 27
28 capabilities_.using_partial_swap = false;
29 capabilities_.max_texture_size = resource_provider_->max_texture_size(); 28 capabilities_.max_texture_size = resource_provider_->max_texture_size();
30 capabilities_.best_texture_format = resource_provider_->best_texture_format(); 29 capabilities_.best_texture_format = resource_provider_->best_texture_format();
31 capabilities_.allow_partial_texture_updates = 30 capabilities_.using_shared_memory_resources =
32 output_surface->capabilities().can_force_reclaim_resources; 31 !output_surface_->context_provider();
33
34 if (!output_surface_->context_provider()) {
35 capabilities_.using_shared_memory_resources = true;
36 } else {
37 const auto& caps =
38 output_surface_->context_provider()->ContextCapabilities();
39
40 DCHECK(!caps.iosurface || caps.texture_rectangle);
41
42 capabilities_.using_egl_image = caps.egl_image_external;
43 capabilities_.using_image = caps.image;
44
45 capabilities_.allow_rasterize_on_demand = false;
46
47 // If MSAA is slow, we want this renderer to behave as though MSAA is not
48 // available. Set samples to 0 to achieve this.
49 if (caps.msaa_is_slow)
50 capabilities_.max_msaa_samples = 0;
51 else
52 capabilities_.max_msaa_samples = caps.max_samples;
53 }
54 } 32 }
55 33
56 DelegatingRenderer::~DelegatingRenderer() = default; 34 DelegatingRenderer::~DelegatingRenderer() = default;
57 35
58 void DelegatingRenderer::DrawFrame( 36 void DelegatingRenderer::DrawFrame(
59 RenderPassList* render_passes_in_draw_order) { 37 RenderPassList* render_passes_in_draw_order) {
60 TRACE_EVENT0("cc", "DelegatingRenderer::DrawFrame"); 38 TRACE_EVENT0("cc", "DelegatingRenderer::DrawFrame");
61 39
62 delegated_frame_data_ = base::WrapUnique(new DelegatedFrameData); 40 delegated_frame_data_ = base::WrapUnique(new DelegatedFrameData);
63 DelegatedFrameData& out_data = *delegated_frame_data_; 41 DelegatedFrameData& out_data = *delegated_frame_data_;
(...skipping 13 matching lines...) Expand all
77 55
78 void DelegatingRenderer::SwapBuffers(CompositorFrameMetadata metadata) { 56 void DelegatingRenderer::SwapBuffers(CompositorFrameMetadata metadata) {
79 TRACE_EVENT0("cc,benchmark", "DelegatingRenderer::SwapBuffers"); 57 TRACE_EVENT0("cc,benchmark", "DelegatingRenderer::SwapBuffers");
80 CompositorFrame compositor_frame; 58 CompositorFrame compositor_frame;
81 compositor_frame.metadata = std::move(metadata); 59 compositor_frame.metadata = std::move(metadata);
82 compositor_frame.delegated_frame_data = std::move(delegated_frame_data_); 60 compositor_frame.delegated_frame_data = std::move(delegated_frame_data_);
83 output_surface_->SwapBuffers(std::move(compositor_frame)); 61 output_surface_->SwapBuffers(std::move(compositor_frame));
84 } 62 }
85 63
86 } // namespace cc 64 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl_unittest.cc ('k') | cc/output/direct_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698