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

Side by Side Diff: cc/layers/surface_layer_impl.cc

Issue 2696303002: Only emit a fallback SurfaceDrawQuad if differs from primary (Closed)
Patch Set: Created 3 years, 10 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 | « no previous file | cc/layers/surface_layer_impl_unittest.cc » ('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/layers/surface_layer_impl.h" 5 #include "cc/layers/surface_layer_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/trace_event/trace_event_argument.h" 9 #include "base/trace_event/trace_event_argument.h"
10 #include "cc/debug/debug_colors.h" 10 #include "cc/debug/debug_colors.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 layer_impl->SetPrimarySurfaceInfo(primary_surface_info_); 59 layer_impl->SetPrimarySurfaceInfo(primary_surface_info_);
60 layer_impl->SetFallbackSurfaceInfo(fallback_surface_info_); 60 layer_impl->SetFallbackSurfaceInfo(fallback_surface_info_);
61 layer_impl->SetStretchContentToFillBounds(stretch_content_to_fill_bounds_); 61 layer_impl->SetStretchContentToFillBounds(stretch_content_to_fill_bounds_);
62 } 62 }
63 63
64 void SurfaceLayerImpl::AppendQuads(RenderPass* render_pass, 64 void SurfaceLayerImpl::AppendQuads(RenderPass* render_pass,
65 AppendQuadsData* append_quads_data) { 65 AppendQuadsData* append_quads_data) {
66 AppendRainbowDebugBorder(render_pass); 66 AppendRainbowDebugBorder(render_pass);
67 auto* primary = CreateSurfaceDrawQuad( 67 auto* primary = CreateSurfaceDrawQuad(
68 render_pass, SurfaceDrawQuadType::PRIMARY, primary_surface_info_); 68 render_pass, SurfaceDrawQuadType::PRIMARY, primary_surface_info_);
69 if (primary) { 69 // Emitting a fallback SurfaceDrawQuad is unnecessary if the primary and
70 // fallback surface Ids match.
71 if (primary && fallback_surface_info_.id() != primary_surface_info_.id()) {
vmpstr 2017/02/16 00:52:12 I'm guessing this comparison takes into account th
Fady Samuel 2017/02/16 01:16:10 If the fallback SurfaceId is invalid then CreateS
70 primary->fallback_quad = CreateSurfaceDrawQuad( 72 primary->fallback_quad = CreateSurfaceDrawQuad(
71 render_pass, SurfaceDrawQuadType::FALLBACK, fallback_surface_info_); 73 render_pass, SurfaceDrawQuadType::FALLBACK, fallback_surface_info_);
72 } 74 }
73 } 75 }
74 76
75 SurfaceDrawQuad* SurfaceLayerImpl::CreateSurfaceDrawQuad( 77 SurfaceDrawQuad* SurfaceLayerImpl::CreateSurfaceDrawQuad(
76 RenderPass* render_pass, 78 RenderPass* render_pass,
77 SurfaceDrawQuadType surface_draw_quad_type, 79 SurfaceDrawQuadType surface_draw_quad_type,
78 const SurfaceInfo& surface_info) { 80 const SurfaceInfo& surface_info) {
79 if (!surface_info.id().is_valid()) 81 if (!surface_info.id().is_valid())
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 dict->SetString("surface_id", primary_surface_info_.id().ToString()); 218 dict->SetString("surface_id", primary_surface_info_.id().ToString());
217 dict->SetString("fallback_surface_id", 219 dict->SetString("fallback_surface_id",
218 fallback_surface_info_.id().ToString()); 220 fallback_surface_info_.id().ToString());
219 } 221 }
220 222
221 const char* SurfaceLayerImpl::LayerTypeAsString() const { 223 const char* SurfaceLayerImpl::LayerTypeAsString() const {
222 return "cc::SurfaceLayerImpl"; 224 return "cc::SurfaceLayerImpl";
223 } 225 }
224 226
225 } // namespace cc 227 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/layers/surface_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698