OLD | NEW |
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/picture_layer_impl.h" | 5 #include "cc/picture_layer_impl.h" |
6 | 6 |
7 #include "base/time.h" | 7 #include "base/time.h" |
8 #include "cc/append_quads_data.h" | 8 #include "cc/append_quads_data.h" |
9 #include "cc/checkerboard_draw_quad.h" | 9 #include "cc/checkerboard_draw_quad.h" |
10 #include "cc/debug_border_draw_quad.h" | 10 #include "cc/debug_border_draw_quad.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 for (PictureLayerTilingSet::Iterator iter(&tilings_, contentsScaleX(), rect); | 77 for (PictureLayerTilingSet::Iterator iter(&tilings_, contentsScaleX(), rect); |
78 iter; | 78 iter; |
79 ++iter) { | 79 ++iter) { |
80 ResourceProvider::ResourceId resource = 0; | 80 ResourceProvider::ResourceId resource = 0; |
81 if (*iter) | 81 if (*iter) |
82 resource = iter->GetResourceId(); | 82 resource = iter->GetResourceId(); |
83 | 83 |
84 gfx::Rect geometry_rect = iter.geometry_rect(); | 84 gfx::Rect geometry_rect = iter.geometry_rect(); |
85 | 85 |
| 86 bool outside_left_edge = geometry_rect.x() == content_rect.x(); |
| 87 bool outside_top_edge = geometry_rect.y() == content_rect.y(); |
| 88 bool outside_right_edge = geometry_rect.right() == content_rect.right(); |
| 89 bool outside_bottom_edge = geometry_rect.bottom() == content_rect.bottom(); |
| 90 |
86 if (!resource) { | 91 if (!resource) { |
87 if (drawCheckerboardForMissingTiles()) { | 92 if (drawCheckerboardForMissingTiles()) { |
88 // TODO(enne): Figure out how to show debug "invalidated checker" color | 93 // TODO(enne): Figure out how to show debug "invalidated checker" color |
89 scoped_ptr<CheckerboardDrawQuad> quad = CheckerboardDrawQuad::Create(); | 94 scoped_ptr<CheckerboardDrawQuad> quad = CheckerboardDrawQuad::Create(); |
90 SkColor color = DebugColors::DefaultCheckerboardColor(); | 95 SkColor color = DebugColors::DefaultCheckerboardColor(); |
91 quad->SetNew(sharedQuadState, geometry_rect, color); | 96 quad->SetNew(sharedQuadState, geometry_rect, color); |
92 if (quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData)) | 97 if (quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData)) |
93 appendQuadsData.numMissingTiles++; | 98 appendQuadsData.numMissingTiles++; |
94 } else { | 99 } else { |
95 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); | 100 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); |
96 quad->SetNew(sharedQuadState, geometry_rect, backgroundColor()); | 101 quad->SetNew(sharedQuadState, geometry_rect, |
| 102 DrawQuad::AntiAliasing(outside_left_edge && useAA, |
| 103 outside_top_edge && useAA, |
| 104 outside_right_edge && useAA, |
| 105 outside_bottom_edge && useAA), |
| 106 backgroundColor()); |
97 if (quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData)) | 107 if (quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData)) |
98 appendQuadsData.numMissingTiles++; | 108 appendQuadsData.numMissingTiles++; |
99 } | 109 } |
100 continue; | 110 continue; |
101 } | 111 } |
102 | 112 |
103 gfx::RectF texture_rect = iter.texture_rect(); | 113 gfx::RectF texture_rect = iter.texture_rect(); |
104 gfx::Rect opaque_rect = iter->opaque_rect(); | 114 gfx::Rect opaque_rect = iter->opaque_rect(); |
105 opaque_rect.Intersect(content_rect); | 115 opaque_rect.Intersect(content_rect); |
106 | 116 |
107 bool outside_left_edge = geometry_rect.x() == content_rect.x(); | |
108 bool outside_top_edge = geometry_rect.y() == content_rect.y(); | |
109 bool outside_right_edge = geometry_rect.right() == content_rect.right(); | |
110 bool outside_bottom_edge = geometry_rect.bottom() == content_rect.bottom(); | |
111 | |
112 scoped_ptr<TileDrawQuad> quad = TileDrawQuad::Create(); | 117 scoped_ptr<TileDrawQuad> quad = TileDrawQuad::Create(); |
113 quad->SetNew(sharedQuadState, | 118 quad->SetNew(sharedQuadState, |
114 geometry_rect, | 119 geometry_rect, |
115 opaque_rect, | 120 opaque_rect, |
| 121 DrawQuad::AntiAliasing(outside_left_edge && useAA, |
| 122 outside_top_edge && useAA, |
| 123 outside_right_edge && useAA, |
| 124 outside_bottom_edge && useAA), |
116 resource, | 125 resource, |
117 texture_rect, | 126 texture_rect, |
118 iter.texture_size(), | 127 iter.texture_size(), |
119 iter->contents_swizzled(), | 128 iter->contents_swizzled()); |
120 outside_left_edge && useAA, | |
121 outside_top_edge && useAA, | |
122 outside_right_edge && useAA, | |
123 outside_bottom_edge && useAA); | |
124 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); | 129 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
125 } | 130 } |
126 } | 131 } |
127 | 132 |
128 void PictureLayerImpl::dumpLayerProperties(std::string*, int indent) const { | 133 void PictureLayerImpl::dumpLayerProperties(std::string*, int indent) const { |
129 // TODO(enne): implement me | 134 // TODO(enne): implement me |
130 } | 135 } |
131 | 136 |
132 void PictureLayerImpl::didUpdateTransforms() { | 137 void PictureLayerImpl::didUpdateTransforms() { |
133 gfx::Transform current_screen_space_transform = | 138 gfx::Transform current_screen_space_transform = |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 AddTiling(ideal_contents_scale, TileSize()); | 292 AddTiling(ideal_contents_scale, TileSize()); |
288 // TODO(enne): Add a low-res tiling as well. | 293 // TODO(enne): Add a low-res tiling as well. |
289 } | 294 } |
290 } else { | 295 } else { |
291 // TODO(enne): This should be unnecessary once there are two trees. | 296 // TODO(enne): This should be unnecessary once there are two trees. |
292 tilings_.Reset(); | 297 tilings_.Reset(); |
293 } | 298 } |
294 } | 299 } |
295 | 300 |
296 } // namespace cc | 301 } // namespace cc |
OLD | NEW |