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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp

Issue 2428513004: [SPv2] Create effect nodes for CSS filter (Closed)
Patch Set: remove DCHECK(layer) Created 4 years, 1 month 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 | « third_party/WebKit/Source/platform/graphics/paint/PaintChunkerTest.cpp ('k') | no next file » | 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 "platform/graphics/paint/PaintController.h" 5 #include "platform/graphics/paint/PaintController.h"
6 6
7 #include "platform/RuntimeEnabledFeatures.h" 7 #include "platform/RuntimeEnabledFeatures.h"
8 #include "platform/graphics/GraphicsContext.h" 8 #include "platform/graphics/GraphicsContext.h"
9 #include "platform/graphics/paint/ClipPathDisplayItem.h" 9 #include "platform/graphics/paint/ClipPathDisplayItem.h"
10 #include "platform/graphics/paint/ClipPathRecorder.h" 10 #include "platform/graphics/paint/ClipPathRecorder.h"
11 #include "platform/graphics/paint/ClipRecorder.h" 11 #include "platform/graphics/paint/ClipRecorder.h"
12 #include "platform/graphics/paint/CompositingRecorder.h" 12 #include "platform/graphics/paint/CompositingRecorder.h"
13 #include "platform/graphics/paint/DrawingDisplayItem.h" 13 #include "platform/graphics/paint/DrawingDisplayItem.h"
14 #include "platform/graphics/paint/DrawingRecorder.h" 14 #include "platform/graphics/paint/DrawingRecorder.h"
15 #include "platform/graphics/paint/SubsequenceRecorder.h" 15 #include "platform/graphics/paint/SubsequenceRecorder.h"
16 #include "platform/testing/FakeDisplayItemClient.h" 16 #include "platform/testing/FakeDisplayItemClient.h"
17 #include "testing/gmock/include/gmock/gmock.h" 17 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 #include <memory> 19 #include <memory>
20 20
21 using testing::UnorderedElementsAre; 21 using testing::UnorderedElementsAre;
22 22
23 namespace blink { 23 namespace blink {
24 24
25 namespace {
26 TransformPaintPropertyNode* dummyRootTransform() {
27 DEFINE_STATIC_REF(TransformPaintPropertyNode, rootTransform,
28 (TransformPaintPropertyNode::create(
29 nullptr, TransformationMatrix(), FloatPoint3D())));
30 return rootTransform;
31 }
32
33 ClipPaintPropertyNode* dummyRootClip() {
34 DEFINE_STATIC_REF(ClipPaintPropertyNode, rootClip,
35 (ClipPaintPropertyNode::create(
36 nullptr, dummyRootTransform(),
37 FloatRoundedRect(LayoutRect::infiniteIntRect()))));
38 return rootClip;
39 }
40
41 EffectPaintPropertyNode* dummyRootEffect() {
42 DEFINE_STATIC_REF(EffectPaintPropertyNode, rootEffect,
43 (EffectPaintPropertyNode::create(
44 nullptr, dummyRootTransform(), dummyRootClip(),
45 CompositorFilterOperations(), 1.0)));
46 return rootEffect;
47 }
48 } // namespace
49
25 class PaintControllerTestBase : public testing::Test { 50 class PaintControllerTestBase : public testing::Test {
26 public: 51 public:
27 PaintControllerTestBase() : m_paintController(PaintController::create()) {} 52 PaintControllerTestBase() : m_paintController(PaintController::create()) {}
28 53
29 IntRect visualRect(const PaintArtifact& paintArtifact, size_t index) { 54 IntRect visualRect(const PaintArtifact& paintArtifact, size_t index) {
30 return paintArtifact.getDisplayItemList().visualRect(index); 55 return paintArtifact.getDisplayItemList().visualRect(index);
31 } 56 }
32 57
33 protected: 58 protected:
34 PaintController& getPaintController() { return *m_paintController; } 59 PaintController& getPaintController() { return *m_paintController; }
(...skipping 977 matching lines...) Expand 10 before | Expand all | Expand 10 after
1012 LayoutRect(100, 200, 100, 100)); 1037 LayoutRect(100, 200, 100, 100));
1013 FakeDisplayItemClient content2("content2", LayoutRect(100, 200, 50, 200)); 1038 FakeDisplayItemClient content2("content2", LayoutRect(100, 200, 50, 200));
1014 GraphicsContext context(getPaintController()); 1039 GraphicsContext context(getPaintController());
1015 1040
1016 PaintChunkProperties container1Properties; 1041 PaintChunkProperties container1Properties;
1017 PaintChunkProperties container2Properties; 1042 PaintChunkProperties container2Properties;
1018 1043
1019 { 1044 {
1020 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1045 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1021 PaintChunk::Id id(container1, backgroundDrawingType); 1046 PaintChunk::Id id(container1, backgroundDrawingType);
1022 container1Properties.effect = 1047 container1Properties.effect = EffectPaintPropertyNode::create(
1023 EffectPaintPropertyNode::create(nullptr, 0.5); 1048 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1049 CompositorFilterOperations(), 0.5);
1024 getPaintController().updateCurrentPaintChunkProperties( 1050 getPaintController().updateCurrentPaintChunkProperties(
1025 &id, container1Properties); 1051 &id, container1Properties);
1026 } 1052 }
1027 SubsequenceRecorder r(context, container1); 1053 SubsequenceRecorder r(context, container1);
1028 drawRect(context, container1, backgroundDrawingType, 1054 drawRect(context, container1, backgroundDrawingType,
1029 FloatRect(100, 100, 100, 100)); 1055 FloatRect(100, 100, 100, 100));
1030 drawRect(context, content1, backgroundDrawingType, 1056 drawRect(context, content1, backgroundDrawingType,
1031 FloatRect(100, 100, 50, 200)); 1057 FloatRect(100, 100, 50, 200));
1032 drawRect(context, content1, foregroundDrawingType, 1058 drawRect(context, content1, foregroundDrawingType,
1033 FloatRect(100, 100, 50, 200)); 1059 FloatRect(100, 100, 50, 200));
1034 drawRect(context, container1, foregroundDrawingType, 1060 drawRect(context, container1, foregroundDrawingType,
1035 FloatRect(100, 100, 100, 100)); 1061 FloatRect(100, 100, 100, 100));
1036 } 1062 }
1037 { 1063 {
1038 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1064 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1039 PaintChunk::Id id(container2, backgroundDrawingType); 1065 PaintChunk::Id id(container2, backgroundDrawingType);
1040 container2Properties.effect = 1066 container2Properties.effect = EffectPaintPropertyNode::create(
1041 EffectPaintPropertyNode::create(nullptr, 0.5); 1067 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1068 CompositorFilterOperations(), 0.5);
1042 getPaintController().updateCurrentPaintChunkProperties( 1069 getPaintController().updateCurrentPaintChunkProperties(
1043 &id, container2Properties); 1070 &id, container2Properties);
1044 } 1071 }
1045 SubsequenceRecorder r(context, container2); 1072 SubsequenceRecorder r(context, container2);
1046 drawRect(context, container2, backgroundDrawingType, 1073 drawRect(context, container2, backgroundDrawingType,
1047 FloatRect(100, 200, 100, 100)); 1074 FloatRect(100, 200, 100, 100));
1048 drawRect(context, content2, backgroundDrawingType, 1075 drawRect(context, content2, backgroundDrawingType,
1049 FloatRect(100, 200, 50, 200)); 1076 FloatRect(100, 200, 50, 200));
1050 drawRect(context, content2, foregroundDrawingType, 1077 drawRect(context, content2, foregroundDrawingType,
1051 FloatRect(100, 200, 50, 200)); 1078 FloatRect(100, 200, 50, 200));
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 LayoutRect(100, 200, 100, 100)); 1209 LayoutRect(100, 200, 100, 100));
1183 FakeDisplayItemClient content2("content2", LayoutRect(100, 200, 50, 200)); 1210 FakeDisplayItemClient content2("content2", LayoutRect(100, 200, 50, 200));
1184 GraphicsContext context(getPaintController()); 1211 GraphicsContext context(getPaintController());
1185 1212
1186 PaintChunkProperties container1Properties; 1213 PaintChunkProperties container1Properties;
1187 PaintChunkProperties container2Properties; 1214 PaintChunkProperties container2Properties;
1188 1215
1189 { 1216 {
1190 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1217 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1191 PaintChunk::Id id(container1, backgroundDrawingType); 1218 PaintChunk::Id id(container1, backgroundDrawingType);
1192 container1Properties.effect = 1219 container1Properties.effect = EffectPaintPropertyNode::create(
1193 EffectPaintPropertyNode::create(nullptr, 0.5); 1220 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1221 CompositorFilterOperations(), 0.5);
1194 getPaintController().updateCurrentPaintChunkProperties( 1222 getPaintController().updateCurrentPaintChunkProperties(
1195 &id, container1Properties); 1223 &id, container1Properties);
1196 } 1224 }
1197 drawRect(context, container1, backgroundDrawingType, 1225 drawRect(context, container1, backgroundDrawingType,
1198 FloatRect(100, 100, 100, 100)); 1226 FloatRect(100, 100, 100, 100));
1199 drawRect(context, content1, backgroundDrawingType, 1227 drawRect(context, content1, backgroundDrawingType,
1200 FloatRect(100, 100, 50, 200)); 1228 FloatRect(100, 100, 50, 200));
1201 } 1229 }
1202 { 1230 {
1203 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1231 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1204 PaintChunk::Id id(container2, backgroundDrawingType); 1232 PaintChunk::Id id(container2, backgroundDrawingType);
1205 container2Properties.effect = 1233 container2Properties.effect = EffectPaintPropertyNode::create(
1206 EffectPaintPropertyNode::create(nullptr, 0.5); 1234 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1235 CompositorFilterOperations(), 0.5);
1207 getPaintController().updateCurrentPaintChunkProperties( 1236 getPaintController().updateCurrentPaintChunkProperties(
1208 &id, container2Properties); 1237 &id, container2Properties);
1209 } 1238 }
1210 drawRect(context, container2, backgroundDrawingType, 1239 drawRect(context, container2, backgroundDrawingType,
1211 FloatRect(100, 200, 100, 100)); 1240 FloatRect(100, 200, 100, 100));
1212 drawRect(context, content2, backgroundDrawingType, 1241 drawRect(context, content2, backgroundDrawingType,
1213 FloatRect(100, 200, 50, 200)); 1242 FloatRect(100, 200, 50, 200));
1214 } 1243 }
1215 getPaintController().commitNewDisplayItems(); 1244 getPaintController().commitNewDisplayItems();
1216 1245
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1319 1348
1320 PaintChunkProperties container1BackgroundProperties; 1349 PaintChunkProperties container1BackgroundProperties;
1321 PaintChunkProperties content1Properties; 1350 PaintChunkProperties content1Properties;
1322 PaintChunkProperties container1ForegroundProperties; 1351 PaintChunkProperties container1ForegroundProperties;
1323 PaintChunkProperties container2BackgroundProperties; 1352 PaintChunkProperties container2BackgroundProperties;
1324 PaintChunkProperties content2Properties; 1353 PaintChunkProperties content2Properties;
1325 1354
1326 { 1355 {
1327 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1356 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1328 PaintChunk::Id id(container1, backgroundDrawingType); 1357 PaintChunk::Id id(container1, backgroundDrawingType);
1329 container1BackgroundProperties.effect = 1358 container1BackgroundProperties.effect = EffectPaintPropertyNode::create(
1330 EffectPaintPropertyNode::create(nullptr, 0.5); 1359 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1360 CompositorFilterOperations(), 0.5);
1331 getPaintController().updateCurrentPaintChunkProperties( 1361 getPaintController().updateCurrentPaintChunkProperties(
1332 &id, container1BackgroundProperties); 1362 &id, container1BackgroundProperties);
1333 } 1363 }
1334 SubsequenceRecorder r(context, container1); 1364 SubsequenceRecorder r(context, container1);
1335 drawRect(context, container1, backgroundDrawingType, 1365 drawRect(context, container1, backgroundDrawingType,
1336 FloatRect(100, 100, 100, 100)); 1366 FloatRect(100, 100, 100, 100));
1337 { 1367 {
1338 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1368 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1339 PaintChunk::Id id(content1, backgroundDrawingType); 1369 PaintChunk::Id id(content1, backgroundDrawingType);
1340 content1Properties.effect = 1370 content1Properties.effect = EffectPaintPropertyNode::create(
1341 EffectPaintPropertyNode::create(nullptr, 0.6); 1371 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1372 CompositorFilterOperations(), 0.6);
1342 getPaintController().updateCurrentPaintChunkProperties( 1373 getPaintController().updateCurrentPaintChunkProperties(
1343 &id, content1Properties); 1374 &id, content1Properties);
1344 } 1375 }
1345 SubsequenceRecorder r(context, content1); 1376 SubsequenceRecorder r(context, content1);
1346 drawRect(context, content1, backgroundDrawingType, 1377 drawRect(context, content1, backgroundDrawingType,
1347 FloatRect(100, 100, 50, 200)); 1378 FloatRect(100, 100, 50, 200));
1348 drawRect(context, content1, foregroundDrawingType, 1379 drawRect(context, content1, foregroundDrawingType,
1349 FloatRect(100, 100, 50, 200)); 1380 FloatRect(100, 100, 50, 200));
1350 } 1381 }
1351 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1382 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1352 PaintChunk::Id id(container1, foregroundDrawingType); 1383 PaintChunk::Id id(container1, foregroundDrawingType);
1353 container1ForegroundProperties.effect = 1384 container1ForegroundProperties.effect = EffectPaintPropertyNode::create(
1354 EffectPaintPropertyNode::create(nullptr, 0.5); 1385 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1386 CompositorFilterOperations(), 0.5);
1355 getPaintController().updateCurrentPaintChunkProperties( 1387 getPaintController().updateCurrentPaintChunkProperties(
1356 &id, container1ForegroundProperties); 1388 &id, container1ForegroundProperties);
1357 } 1389 }
1358 drawRect(context, container1, foregroundDrawingType, 1390 drawRect(context, container1, foregroundDrawingType,
1359 FloatRect(100, 100, 100, 100)); 1391 FloatRect(100, 100, 100, 100));
1360 } 1392 }
1361 { 1393 {
1362 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1394 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1363 PaintChunk::Id id(container2, backgroundDrawingType); 1395 PaintChunk::Id id(container2, backgroundDrawingType);
1364 container2BackgroundProperties.effect = 1396 container2BackgroundProperties.effect = EffectPaintPropertyNode::create(
1365 EffectPaintPropertyNode::create(nullptr, 0.7); 1397 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1398 CompositorFilterOperations(), 0.7);
1366 getPaintController().updateCurrentPaintChunkProperties( 1399 getPaintController().updateCurrentPaintChunkProperties(
1367 &id, container2BackgroundProperties); 1400 &id, container2BackgroundProperties);
1368 } 1401 }
1369 SubsequenceRecorder r(context, container2); 1402 SubsequenceRecorder r(context, container2);
1370 drawRect(context, container2, backgroundDrawingType, 1403 drawRect(context, container2, backgroundDrawingType,
1371 FloatRect(100, 200, 100, 100)); 1404 FloatRect(100, 200, 100, 100));
1372 { 1405 {
1373 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 1406 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
1374 PaintChunk::Id id(content2, backgroundDrawingType); 1407 PaintChunk::Id id(content2, backgroundDrawingType);
1375 content2Properties.effect = 1408 content2Properties.effect = EffectPaintPropertyNode::create(
1376 EffectPaintPropertyNode::create(nullptr, 0.8); 1409 dummyRootEffect(), dummyRootTransform(), dummyRootClip(),
1410 CompositorFilterOperations(), 0.8);
1377 getPaintController().updateCurrentPaintChunkProperties( 1411 getPaintController().updateCurrentPaintChunkProperties(
1378 &id, content2Properties); 1412 &id, content2Properties);
1379 } 1413 }
1380 SubsequenceRecorder r(context, content2); 1414 SubsequenceRecorder r(context, content2);
1381 drawRect(context, content2, backgroundDrawingType, 1415 drawRect(context, content2, backgroundDrawingType,
1382 FloatRect(100, 200, 50, 200)); 1416 FloatRect(100, 200, 50, 200));
1383 } 1417 }
1384 } 1418 }
1385 getPaintController().commitNewDisplayItems(); 1419 getPaintController().commitNewDisplayItems();
1386 1420
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after
2260 } 2294 }
2261 2295
2262 TEST_F(PaintControllerUnderInvalidationTest, 2296 TEST_F(PaintControllerUnderInvalidationTest,
2263 FoldCompositingDrawingInSubsequence) { 2297 FoldCompositingDrawingInSubsequence) {
2264 testFoldCompositingDrawingInSubsequence(); 2298 testFoldCompositingDrawingInSubsequence();
2265 } 2299 }
2266 2300
2267 #endif // defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID) 2301 #endif // defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID)
2268 2302
2269 } // namespace blink 2303 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/paint/PaintChunkerTest.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698