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

Side by Side Diff: cc/blink/web_display_item_list_impl.cc

Issue 1521373005: Revert of cc: Shrink size of display item (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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/picture_image_layer.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/blink/web_display_item_list_impl.h" 5 #include "cc/blink/web_display_item_list_impl.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "cc/blink/web_filter_operations_impl.h" 9 #include "cc/blink/web_filter_operations_impl.h"
10 #include "cc/playback/clip_display_item.h" 10 #include "cc/playback/clip_display_item.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 WebDisplayItemListImpl::WebDisplayItemListImpl( 44 WebDisplayItemListImpl::WebDisplayItemListImpl(
45 cc::DisplayItemList* display_list) 45 cc::DisplayItemList* display_list)
46 : display_item_list_(display_list) { 46 : display_item_list_(display_list) {
47 } 47 }
48 48
49 void WebDisplayItemListImpl::appendDrawingItem( 49 void WebDisplayItemListImpl::appendDrawingItem(
50 const blink::WebRect& visual_rect, 50 const blink::WebRect& visual_rect,
51 const SkPicture* picture) { 51 const SkPicture* picture) {
52 if (display_item_list_->RetainsIndividualDisplayItems()) { 52 if (display_item_list_->RetainsIndividualDisplayItems()) {
53 display_item_list_->CreateAndAppendItem<cc::DrawingDisplayItem>( 53 auto* item =
54 visual_rect, skia::SharePtr(const_cast<SkPicture*>(picture))); 54 display_item_list_->CreateAndAppendItem<cc::DrawingDisplayItem>(
55 visual_rect);
56 item->SetNew(skia::SharePtr(const_cast<SkPicture*>(picture)));
55 } else { 57 } else {
56 cc::DrawingDisplayItem item( 58 cc::DrawingDisplayItem item;
57 skia::SharePtr(const_cast<SkPicture*>(picture))); 59 item.SetNew(skia::SharePtr(const_cast<SkPicture*>(picture)));
58 display_item_list_->RasterIntoCanvas(item); 60 display_item_list_->RasterIntoCanvas(item);
59 } 61 }
60 } 62 }
61 63
62 void WebDisplayItemListImpl::appendClipItem( 64 void WebDisplayItemListImpl::appendClipItem(
63 const blink::WebRect& visual_rect, 65 const blink::WebRect& visual_rect,
64 const blink::WebRect& clip_rect, 66 const blink::WebRect& clip_rect,
65 const blink::WebVector<SkRRect>& rounded_clip_rects) { 67 const blink::WebVector<SkRRect>& rounded_clip_rects) {
66 std::vector<SkRRect> rounded_rects; 68 std::vector<SkRRect> rounded_rects;
67 for (size_t i = 0; i < rounded_clip_rects.size(); ++i) { 69 for (size_t i = 0; i < rounded_clip_rects.size(); ++i) {
68 rounded_rects.push_back(rounded_clip_rects[i]); 70 rounded_rects.push_back(rounded_clip_rects[i]);
69 } 71 }
70 if (display_item_list_->RetainsIndividualDisplayItems()) { 72 if (display_item_list_->RetainsIndividualDisplayItems()) {
71 display_item_list_->CreateAndAppendItem<cc::ClipDisplayItem>( 73 auto* item = display_item_list_->CreateAndAppendItem<cc::ClipDisplayItem>(
72 visual_rect, clip_rect, rounded_rects); 74 visual_rect);
75 item->SetNew(clip_rect, rounded_rects);
73 } else { 76 } else {
74 cc::ClipDisplayItem item(clip_rect, rounded_rects); 77 cc::ClipDisplayItem item;
78 item.SetNew(clip_rect, rounded_rects);
75 display_item_list_->RasterIntoCanvas(item); 79 display_item_list_->RasterIntoCanvas(item);
76 } 80 }
77 } 81 }
78 82
79 void WebDisplayItemListImpl::appendEndClipItem( 83 void WebDisplayItemListImpl::appendEndClipItem(
80 const blink::WebRect& visual_rect) { 84 const blink::WebRect& visual_rect) {
81 if (display_item_list_->RetainsIndividualDisplayItems()) { 85 if (display_item_list_->RetainsIndividualDisplayItems()) {
82 display_item_list_->CreateAndAppendItem<cc::EndClipDisplayItem>( 86 display_item_list_->CreateAndAppendItem<cc::EndClipDisplayItem>(
83 visual_rect); 87 visual_rect);
84 } else { 88 } else {
85 display_item_list_->RasterIntoCanvas(cc::EndClipDisplayItem()); 89 display_item_list_->RasterIntoCanvas(cc::EndClipDisplayItem());
86 } 90 }
87 } 91 }
88 92
89 void WebDisplayItemListImpl::appendClipPathItem( 93 void WebDisplayItemListImpl::appendClipPathItem(
90 const blink::WebRect& visual_rect, 94 const blink::WebRect& visual_rect,
91 const SkPath& clip_path, 95 const SkPath& clip_path,
92 SkRegion::Op clip_op, 96 SkRegion::Op clip_op,
93 bool antialias) { 97 bool antialias) {
94 if (display_item_list_->RetainsIndividualDisplayItems()) { 98 if (display_item_list_->RetainsIndividualDisplayItems()) {
95 display_item_list_->CreateAndAppendItem<cc::ClipPathDisplayItem>( 99 auto* item =
96 visual_rect, clip_path, clip_op, antialias); 100 display_item_list_->CreateAndAppendItem<cc::ClipPathDisplayItem>(
101 visual_rect);
102 item->SetNew(clip_path, clip_op, antialias);
97 } else { 103 } else {
98 cc::ClipPathDisplayItem item(clip_path, clip_op, antialias); 104 cc::ClipPathDisplayItem item;
105 item.SetNew(clip_path, clip_op, antialias);
99 display_item_list_->RasterIntoCanvas(item); 106 display_item_list_->RasterIntoCanvas(item);
100 } 107 }
101 } 108 }
102 109
103 void WebDisplayItemListImpl::appendEndClipPathItem( 110 void WebDisplayItemListImpl::appendEndClipPathItem(
104 const blink::WebRect& visual_rect) { 111 const blink::WebRect& visual_rect) {
105 if (display_item_list_->RetainsIndividualDisplayItems()) { 112 if (display_item_list_->RetainsIndividualDisplayItems()) {
106 display_item_list_->CreateAndAppendItem<cc::EndClipPathDisplayItem>( 113 display_item_list_->CreateAndAppendItem<cc::EndClipPathDisplayItem>(
107 visual_rect); 114 visual_rect);
108 } else { 115 } else {
109 display_item_list_->RasterIntoCanvas(cc::EndClipPathDisplayItem()); 116 display_item_list_->RasterIntoCanvas(cc::EndClipPathDisplayItem());
110 } 117 }
111 } 118 }
112 119
113 void WebDisplayItemListImpl::appendFloatClipItem( 120 void WebDisplayItemListImpl::appendFloatClipItem(
114 const blink::WebRect& visual_rect, 121 const blink::WebRect& visual_rect,
115 const blink::WebFloatRect& clip_rect) { 122 const blink::WebFloatRect& clip_rect) {
116 if (display_item_list_->RetainsIndividualDisplayItems()) { 123 if (display_item_list_->RetainsIndividualDisplayItems()) {
117 display_item_list_->CreateAndAppendItem<cc::FloatClipDisplayItem>( 124 auto* item =
118 visual_rect, clip_rect); 125 display_item_list_->CreateAndAppendItem<cc::FloatClipDisplayItem>(
126 visual_rect);
127 item->SetNew(clip_rect);
119 } else { 128 } else {
120 cc::FloatClipDisplayItem item(clip_rect); 129 cc::FloatClipDisplayItem item;
130 item.SetNew(clip_rect);
121 display_item_list_->RasterIntoCanvas(item); 131 display_item_list_->RasterIntoCanvas(item);
122 } 132 }
123 } 133 }
124 134
125 void WebDisplayItemListImpl::appendEndFloatClipItem( 135 void WebDisplayItemListImpl::appendEndFloatClipItem(
126 const blink::WebRect& visual_rect) { 136 const blink::WebRect& visual_rect) {
127 if (display_item_list_->RetainsIndividualDisplayItems()) { 137 if (display_item_list_->RetainsIndividualDisplayItems()) {
128 display_item_list_->CreateAndAppendItem<cc::EndFloatClipDisplayItem>( 138 display_item_list_->CreateAndAppendItem<cc::EndFloatClipDisplayItem>(
129 visual_rect); 139 visual_rect);
130 } else { 140 } else {
131 display_item_list_->RasterIntoCanvas(cc::EndFloatClipDisplayItem()); 141 display_item_list_->RasterIntoCanvas(cc::EndFloatClipDisplayItem());
132 } 142 }
133 } 143 }
134 144
135 void WebDisplayItemListImpl::appendTransformItem( 145 void WebDisplayItemListImpl::appendTransformItem(
136 const blink::WebRect& visual_rect, 146 const blink::WebRect& visual_rect,
137 const SkMatrix44& matrix) { 147 const SkMatrix44& matrix) {
138 gfx::Transform transform(gfx::Transform::kSkipInitialization); 148 gfx::Transform transform(gfx::Transform::kSkipInitialization);
139 transform.matrix() = matrix; 149 transform.matrix() = matrix;
140 150
141 if (display_item_list_->RetainsIndividualDisplayItems()) { 151 if (display_item_list_->RetainsIndividualDisplayItems()) {
142 display_item_list_->CreateAndAppendItem<cc::TransformDisplayItem>( 152 auto* item =
143 visual_rect, transform); 153 display_item_list_->CreateAndAppendItem<cc::TransformDisplayItem>(
154 visual_rect);
155 item->SetNew(transform);
144 } else { 156 } else {
145 cc::TransformDisplayItem item(transform); 157 cc::TransformDisplayItem item;
158 item.SetNew(transform);
146 display_item_list_->RasterIntoCanvas(item); 159 display_item_list_->RasterIntoCanvas(item);
147 } 160 }
148 } 161 }
149 162
150 void WebDisplayItemListImpl::appendEndTransformItem( 163 void WebDisplayItemListImpl::appendEndTransformItem(
151 const blink::WebRect& visual_rect) { 164 const blink::WebRect& visual_rect) {
152 if (display_item_list_->RetainsIndividualDisplayItems()) { 165 if (display_item_list_->RetainsIndividualDisplayItems()) {
153 display_item_list_->CreateAndAppendItem<cc::EndTransformDisplayItem>( 166 display_item_list_->CreateAndAppendItem<cc::EndTransformDisplayItem>(
154 visual_rect); 167 visual_rect);
155 } else { 168 } else {
156 display_item_list_->RasterIntoCanvas(cc::EndTransformDisplayItem()); 169 display_item_list_->RasterIntoCanvas(cc::EndTransformDisplayItem());
157 } 170 }
158 } 171 }
159 172
160 void WebDisplayItemListImpl::appendCompositingItem( 173 void WebDisplayItemListImpl::appendCompositingItem(
161 const blink::WebRect& visual_rect, 174 const blink::WebRect& visual_rect,
162 float opacity, 175 float opacity,
163 SkXfermode::Mode xfermode, 176 SkXfermode::Mode xfermode,
164 SkRect* bounds, 177 SkRect* bounds,
165 SkColorFilter* color_filter) { 178 SkColorFilter* color_filter) {
166 DCHECK_GE(opacity, 0.f); 179 DCHECK_GE(opacity, 0.f);
167 DCHECK_LE(opacity, 1.f); 180 DCHECK_LE(opacity, 1.f);
168 // TODO(ajuma): This should really be rounding instead of flooring the alpha 181 // TODO(ajuma): This should really be rounding instead of flooring the alpha
169 // value, but that breaks slimming paint reftests. 182 // value, but that breaks slimming paint reftests.
170 183
171 if (display_item_list_->RetainsIndividualDisplayItems()) { 184 if (display_item_list_->RetainsIndividualDisplayItems()) {
172 display_item_list_->CreateAndAppendItem<cc::CompositingDisplayItem>( 185 auto* item =
173 visual_rect, static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)), 186 display_item_list_->CreateAndAppendItem<cc::CompositingDisplayItem>(
174 xfermode, bounds, skia::SharePtr(color_filter)); 187 visual_rect);
188 item->SetNew(static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)),
189 xfermode, bounds, skia::SharePtr(color_filter));
175 } else { 190 } else {
176 cc::CompositingDisplayItem item( 191 cc::CompositingDisplayItem item;
177 static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)), xfermode, 192 item.SetNew(static_cast<uint8_t>(gfx::ToFlooredInt(255 * opacity)),
178 bounds, skia::SharePtr(color_filter)); 193 xfermode, bounds, skia::SharePtr(color_filter));
179 display_item_list_->RasterIntoCanvas(item); 194 display_item_list_->RasterIntoCanvas(item);
180 } 195 }
181 } 196 }
182 197
183 void WebDisplayItemListImpl::appendEndCompositingItem( 198 void WebDisplayItemListImpl::appendEndCompositingItem(
184 const blink::WebRect& visual_rect) { 199 const blink::WebRect& visual_rect) {
185 if (display_item_list_->RetainsIndividualDisplayItems()) { 200 if (display_item_list_->RetainsIndividualDisplayItems()) {
186 display_item_list_->CreateAndAppendItem<cc::EndCompositingDisplayItem>( 201 display_item_list_->CreateAndAppendItem<cc::EndCompositingDisplayItem>(
187 visual_rect); 202 visual_rect);
188 } else { 203 } else {
189 display_item_list_->RasterIntoCanvas(cc::EndCompositingDisplayItem()); 204 display_item_list_->RasterIntoCanvas(cc::EndCompositingDisplayItem());
190 } 205 }
191 } 206 }
192 207
193 void WebDisplayItemListImpl::appendFilterItem( 208 void WebDisplayItemListImpl::appendFilterItem(
194 const blink::WebRect& visual_rect, 209 const blink::WebRect& visual_rect,
195 const blink::WebFilterOperations& filters, 210 const blink::WebFilterOperations& filters,
196 const blink::WebFloatRect& bounds) { 211 const blink::WebFloatRect& bounds) {
197 const WebFilterOperationsImpl& filters_impl = 212 const WebFilterOperationsImpl& filters_impl =
198 static_cast<const WebFilterOperationsImpl&>(filters); 213 static_cast<const WebFilterOperationsImpl&>(filters);
199 214
200 if (display_item_list_->RetainsIndividualDisplayItems()) { 215 if (display_item_list_->RetainsIndividualDisplayItems()) {
201 display_item_list_->CreateAndAppendItem<cc::FilterDisplayItem>( 216 auto* item = display_item_list_->CreateAndAppendItem<cc::FilterDisplayItem>(
202 visual_rect, filters_impl.AsFilterOperations(), bounds); 217 visual_rect);
218 item->SetNew(filters_impl.AsFilterOperations(), bounds);
203 } else { 219 } else {
204 cc::FilterDisplayItem item(filters_impl.AsFilterOperations(), bounds); 220 cc::FilterDisplayItem item;
221 item.SetNew(filters_impl.AsFilterOperations(), bounds);
205 display_item_list_->RasterIntoCanvas(item); 222 display_item_list_->RasterIntoCanvas(item);
206 } 223 }
207 } 224 }
208 225
209 void WebDisplayItemListImpl::appendEndFilterItem( 226 void WebDisplayItemListImpl::appendEndFilterItem(
210 const blink::WebRect& visual_rect) { 227 const blink::WebRect& visual_rect) {
211 if (display_item_list_->RetainsIndividualDisplayItems()) { 228 if (display_item_list_->RetainsIndividualDisplayItems()) {
212 display_item_list_->CreateAndAppendItem<cc::EndFilterDisplayItem>( 229 display_item_list_->CreateAndAppendItem<cc::EndFilterDisplayItem>(
213 visual_rect); 230 visual_rect);
214 } else { 231 } else {
(...skipping 13 matching lines...) Expand all
228 245
229 void WebDisplayItemListImpl::appendEndScrollItem( 246 void WebDisplayItemListImpl::appendEndScrollItem(
230 const blink::WebRect& visual_rect) { 247 const blink::WebRect& visual_rect) {
231 appendEndTransformItem(visual_rect); 248 appendEndTransformItem(visual_rect);
232 } 249 }
233 250
234 WebDisplayItemListImpl::~WebDisplayItemListImpl() { 251 WebDisplayItemListImpl::~WebDisplayItemListImpl() {
235 } 252 }
236 253
237 } // namespace cc_blink 254 } // namespace cc_blink
OLDNEW
« no previous file with comments | « no previous file | cc/layers/picture_image_layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698