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

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

Issue 2175553002: Raster PictureLayerTiling with fractional translation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: combined Created 3 years, 8 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/tiles/tile.h ('k') | cc/tiles/tile_manager.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 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/tiles/tile.h" 5 #include "cc/tiles/tile.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
11 #include "base/numerics/safe_conversions.h" 11 #include "base/numerics/safe_conversions.h"
12 #include "base/trace_event/trace_event.h" 12 #include "base/trace_event/trace_event.h"
13 #include "base/trace_event/trace_event_argument.h" 13 #include "base/trace_event/trace_event_argument.h"
14 #include "cc/base/math_util.h" 14 #include "cc/base/math_util.h"
15 #include "cc/debug/traced_value.h" 15 #include "cc/debug/traced_value.h"
16 #include "cc/tiles/tile_manager.h" 16 #include "cc/tiles/tile_manager.h"
17 17
18 namespace cc { 18 namespace cc {
19 19
20 Tile::Tile(TileManager* tile_manager, 20 Tile::Tile(TileManager* tile_manager,
21 const CreateInfo& info, 21 const CreateInfo& info,
22 int layer_id, 22 int layer_id,
23 int source_frame_number, 23 int source_frame_number,
24 int flags) 24 int flags)
25 : tile_manager_(tile_manager), 25 : tile_manager_(tile_manager),
26 tiling_(info.tiling), 26 tiling_(info.tiling),
27 content_rect_(info.content_rect), 27 content_rect_(info.content_rect),
28 enclosing_layer_rect_(info.enclosing_layer_rect), 28 enclosing_layer_rect_(info.enclosing_layer_rect),
29 contents_scale_(info.contents_scale), 29 raster_transform_(info.raster_transform),
30 layer_id_(layer_id), 30 layer_id_(layer_id),
31 source_frame_number_(source_frame_number), 31 source_frame_number_(source_frame_number),
32 flags_(flags), 32 flags_(flags),
33 tiling_i_index_(info.tiling_i_index), 33 tiling_i_index_(info.tiling_i_index),
34 tiling_j_index_(info.tiling_j_index), 34 tiling_j_index_(info.tiling_j_index),
35 required_for_activation_(false), 35 required_for_activation_(false),
36 required_for_draw_(false), 36 required_for_draw_(false),
37 is_solid_color_analysis_performed_(false), 37 is_solid_color_analysis_performed_(false),
38 id_(tile_manager->GetUniqueTileId()), 38 id_(tile_manager->GetUniqueTileId()),
39 invalidated_id_(0), 39 invalidated_id_(0),
40 scheduled_priority_(0) {} 40 scheduled_priority_(0) {}
41 41
42 Tile::~Tile() { 42 Tile::~Tile() {
43 TRACE_EVENT_OBJECT_DELETED_WITH_ID( 43 TRACE_EVENT_OBJECT_DELETED_WITH_ID(
44 TRACE_DISABLED_BY_DEFAULT("cc.debug"), 44 TRACE_DISABLED_BY_DEFAULT("cc.debug"),
45 "cc::Tile", this); 45 "cc::Tile", this);
46 tile_manager_->Release(this); 46 tile_manager_->Release(this);
47 } 47 }
48 48
49 void Tile::AsValueInto(base::trace_event::TracedValue* value) const { 49 void Tile::AsValueInto(base::trace_event::TracedValue* value) const {
50 TracedValue::MakeDictIntoImplicitSnapshotWithCategory( 50 TracedValue::MakeDictIntoImplicitSnapshotWithCategory(
51 TRACE_DISABLED_BY_DEFAULT("cc.debug"), value, "cc::Tile", this); 51 TRACE_DISABLED_BY_DEFAULT("cc.debug"), value, "cc::Tile", this);
52 value->SetDouble("contents_scale", contents_scale()); 52 value->SetDouble("contents_scale", contents_scale_key());
53
54 value->BeginArray("raster_transform");
55 value->AppendDouble(raster_transform_.scale());
56 value->AppendDouble(raster_transform_.translation().x());
57 value->AppendDouble(raster_transform_.translation().y());
58 value->EndArray();
53 59
54 MathUtil::AddToTracedValue("content_rect", content_rect_, value); 60 MathUtil::AddToTracedValue("content_rect", content_rect_, value);
55 61
56 value->SetInteger("layer_id", layer_id_); 62 value->SetInteger("layer_id", layer_id_);
57 63
58 value->BeginDictionary("draw_info"); 64 value->BeginDictionary("draw_info");
59 draw_info_.AsValueInto(value); 65 draw_info_.AsValueInto(value);
60 value->EndDictionary(); 66 value->EndDictionary();
61 67
62 value->SetBoolean("has_resource", draw_info().has_resource()); 68 value->SetBoolean("has_resource", draw_info().has_resource());
63 value->SetBoolean("is_using_gpu_memory", 69 value->SetBoolean("is_using_gpu_memory",
64 draw_info().has_resource() || HasRasterTask()); 70 draw_info().has_resource() || HasRasterTask());
65 value->SetInteger("scheduled_priority", scheduled_priority_); 71 value->SetInteger("scheduled_priority", scheduled_priority_);
66 value->SetBoolean("use_picture_analysis", use_picture_analysis()); 72 value->SetBoolean("use_picture_analysis", use_picture_analysis());
67 value->SetInteger("gpu_memory_usage", 73 value->SetInteger("gpu_memory_usage",
68 base::saturated_cast<int>(GPUMemoryUsageInBytes())); 74 base::saturated_cast<int>(GPUMemoryUsageInBytes()));
69 } 75 }
70 76
71 size_t Tile::GPUMemoryUsageInBytes() const { 77 size_t Tile::GPUMemoryUsageInBytes() const {
72 if (draw_info_.resource_) { 78 if (draw_info_.resource_) {
73 // We can use UncheckedSizeInBytes, since the tile size is determined by the 79 // We can use UncheckedSizeInBytes, since the tile size is determined by the
74 // compositor. 80 // compositor.
75 return ResourceUtil::UncheckedSizeInBytes<size_t>( 81 return ResourceUtil::UncheckedSizeInBytes<size_t>(
76 draw_info_.resource_->size(), draw_info_.resource_->format()); 82 draw_info_.resource_->size(), draw_info_.resource_->format());
77 } 83 }
78 return 0; 84 return 0;
79 } 85 }
80 86
81 } // namespace cc 87 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/tile.h ('k') | cc/tiles/tile_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698