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

Side by Side Diff: cc/tiles/tile_draw_info.cc

Issue 2555743004: Delay activation/draw on GPU tile work completion (Closed)
Patch Set: rebase Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/tiles/tile_draw_info.h" 5 #include "cc/tiles/tile_draw_info.h"
6 6
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "cc/base/math_util.h" 8 #include "cc/base/math_util.h"
9 9
10 namespace cc { 10 namespace cc {
11 11
12 TileDrawInfo::TileDrawInfo() 12 TileDrawInfo::TileDrawInfo()
13 : mode_(RESOURCE_MODE), 13 : was_ever_ready_to_draw_(false),
14 solid_color_(SK_ColorWHITE),
15 resource_(nullptr),
16 contents_swizzled_(false),
17 was_ever_ready_to_draw_(false),
18 was_ever_used_to_draw_(false), 14 was_ever_used_to_draw_(false),
19 was_a_prepaint_tile_(false) {} 15 was_a_prepaint_tile_(false) {}
20 16
21 TileDrawInfo::~TileDrawInfo() { 17 TileDrawInfo::~TileDrawInfo() {
22 DCHECK(!resource_); 18 DCHECK(!resource_);
23 if (was_ever_ready_to_draw_ && was_a_prepaint_tile_) { 19 if (was_ever_ready_to_draw_ && was_a_prepaint_tile_) {
24 UMA_HISTOGRAM_BOOLEAN("Renderer4.ReadyToDrawTileDrawStatus", 20 UMA_HISTOGRAM_BOOLEAN("Renderer4.ReadyToDrawTileDrawStatus",
25 was_ever_used_to_draw_); 21 was_ever_used_to_draw_);
26 } 22 }
27 } 23 }
28 24
29 void TileDrawInfo::AsValueInto(base::trace_event::TracedValue* state) const { 25 void TileDrawInfo::AsValueInto(base::trace_event::TracedValue* state) const {
30 state->SetBoolean("is_solid_color", mode_ == SOLID_COLOR_MODE); 26 state->SetBoolean("is_solid_color", mode_ == SOLID_COLOR_MODE);
31 state->SetBoolean("is_transparent", 27 state->SetBoolean("is_transparent",
32 mode_ == SOLID_COLOR_MODE && !SkColorGetA(solid_color_)); 28 mode_ == SOLID_COLOR_MODE && !SkColorGetA(solid_color_));
33 } 29 }
34 30
31 Resource* TileDrawInfo::TakeResource() {
32 if (!resource_)
vmpstr 2017/01/05 22:00:46 Don't need this if.
ericrk 2017/01/09 23:05:21 Done.
33 return nullptr;
34
35 Resource* resource = resource_;
36 set_resource(nullptr);
37 return resource;
38 }
39
35 } // namespace cc 40 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698