| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "Test.h" | 8 #include "Test.h" |
| 9 #if SK_SUPPORT_GPU | 9 #if SK_SUPPORT_GPU |
| 10 #include "GrReducedClip.h" | 10 #include "GrReducedClip.h" |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 | 137 |
| 138 for (size_t i = 0; i < SK_ARRAY_COUNT(gRects); i++) { | 138 for (size_t i = 0; i < SK_ARRAY_COUNT(gRects); i++) { |
| 139 // the union op will prevent these from being fused together | 139 // the union op will prevent these from being fused together |
| 140 stack.clipDevRect(gRects[i], SkRegion::kUnion_Op, false); | 140 stack.clipDevRect(gRects[i], SkRegion::kUnion_Op, false); |
| 141 } | 141 } |
| 142 | 142 |
| 143 assert_count(reporter, stack, 4); | 143 assert_count(reporter, stack, 4); |
| 144 | 144 |
| 145 // bottom to top iteration | 145 // bottom to top iteration |
| 146 { | 146 { |
| 147 const SkClipStack::Element* element = NULL; | 147 const SkClipStack::Element* element = nullptr; |
| 148 | 148 |
| 149 SkClipStack::B2TIter iter(stack); | 149 SkClipStack::B2TIter iter(stack); |
| 150 int i; | 150 int i; |
| 151 | 151 |
| 152 for (i = 0, element = iter.next(); element; ++i, element = iter.next())
{ | 152 for (i = 0, element = iter.next(); element; ++i, element = iter.next())
{ |
| 153 REPORTER_ASSERT(reporter, SkClipStack::Element::kRect_Type == elemen
t->getType()); | 153 REPORTER_ASSERT(reporter, SkClipStack::Element::kRect_Type == elemen
t->getType()); |
| 154 REPORTER_ASSERT(reporter, element->getRect() == gRects[i]); | 154 REPORTER_ASSERT(reporter, element->getRect() == gRects[i]); |
| 155 } | 155 } |
| 156 | 156 |
| 157 SkASSERT(i == 4); | 157 SkASSERT(i == 4); |
| 158 } | 158 } |
| 159 | 159 |
| 160 // top to bottom iteration | 160 // top to bottom iteration |
| 161 { | 161 { |
| 162 const SkClipStack::Element* element = NULL; | 162 const SkClipStack::Element* element = nullptr; |
| 163 | 163 |
| 164 SkClipStack::Iter iter(stack, SkClipStack::Iter::kTop_IterStart); | 164 SkClipStack::Iter iter(stack, SkClipStack::Iter::kTop_IterStart); |
| 165 int i; | 165 int i; |
| 166 | 166 |
| 167 for (i = 3, element = iter.prev(); element; --i, element = iter.prev())
{ | 167 for (i = 3, element = iter.prev(); element; --i, element = iter.prev())
{ |
| 168 REPORTER_ASSERT(reporter, SkClipStack::Element::kRect_Type == elemen
t->getType()); | 168 REPORTER_ASSERT(reporter, SkClipStack::Element::kRect_Type == elemen
t->getType()); |
| 169 REPORTER_ASSERT(reporter, element->getRect() == gRects[i]); | 169 REPORTER_ASSERT(reporter, element->getRect() == gRects[i]); |
| 170 } | 170 } |
| 171 | 171 |
| 172 SkASSERT(i == -1); | 172 SkASSERT(i == -1); |
| 173 } | 173 } |
| 174 | 174 |
| 175 // skipToTopmost | 175 // skipToTopmost |
| 176 { | 176 { |
| 177 const SkClipStack::Element* element = NULL; | 177 const SkClipStack::Element* element = nullptr; |
| 178 | 178 |
| 179 SkClipStack::Iter iter(stack, SkClipStack::Iter::kBottom_IterStart); | 179 SkClipStack::Iter iter(stack, SkClipStack::Iter::kBottom_IterStart); |
| 180 | 180 |
| 181 element = iter.skipToTopmost(SkRegion::kUnion_Op); | 181 element = iter.skipToTopmost(SkRegion::kUnion_Op); |
| 182 REPORTER_ASSERT(reporter, SkClipStack::Element::kRect_Type == element->g
etType()); | 182 REPORTER_ASSERT(reporter, SkClipStack::Element::kRect_Type == element->g
etType()); |
| 183 REPORTER_ASSERT(reporter, element->getRect() == gRects[3]); | 183 REPORTER_ASSERT(reporter, element->getRect() == gRects[3]); |
| 184 } | 184 } |
| 185 } | 185 } |
| 186 | 186 |
| 187 // Exercise the SkClipStack's getConservativeBounds computation | 187 // Exercise the SkClipStack's getConservativeBounds computation |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 | 376 |
| 377 REPORTER_ASSERT(reporter, stack.isWideOpen()); | 377 REPORTER_ASSERT(reporter, stack.isWideOpen()); |
| 378 REPORTER_ASSERT(reporter, SkClipStack::kWideOpenGenID == stack.getTopmos
tGenID()); | 378 REPORTER_ASSERT(reporter, SkClipStack::kWideOpenGenID == stack.getTopmos
tGenID()); |
| 379 } | 379 } |
| 380 } | 380 } |
| 381 | 381 |
| 382 static int count(const SkClipStack& stack) { | 382 static int count(const SkClipStack& stack) { |
| 383 | 383 |
| 384 SkClipStack::Iter iter(stack, SkClipStack::Iter::kTop_IterStart); | 384 SkClipStack::Iter iter(stack, SkClipStack::Iter::kTop_IterStart); |
| 385 | 385 |
| 386 const SkClipStack::Element* element = NULL; | 386 const SkClipStack::Element* element = nullptr; |
| 387 int count = 0; | 387 int count = 0; |
| 388 | 388 |
| 389 for (element = iter.prev(); element; element = iter.prev(), ++count) { | 389 for (element = iter.prev(); element; element = iter.prev(), ++count) { |
| 390 ; | 390 ; |
| 391 } | 391 } |
| 392 | 392 |
| 393 return count; | 393 return count; |
| 394 } | 394 } |
| 395 | 395 |
| 396 static void test_rect_inverse_fill(skiatest::Reporter* reporter) { | 396 static void test_rect_inverse_fill(skiatest::Reporter* reporter) { |
| (...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 957 inflatedBounds.outset(kBounds.width() / 2, kBounds.height() / 2); | 957 inflatedBounds.outset(kBounds.width() / 2, kBounds.height() / 2); |
| 958 SkIRect inflatedIBounds; | 958 SkIRect inflatedIBounds; |
| 959 inflatedBounds.roundOut(&inflatedIBounds); | 959 inflatedBounds.roundOut(&inflatedIBounds); |
| 960 | 960 |
| 961 typedef GrReducedClip::ElementList ElementList; | 961 typedef GrReducedClip::ElementList ElementList; |
| 962 // Get the reduced version of the stack. | 962 // Get the reduced version of the stack. |
| 963 ElementList reducedClips; | 963 ElementList reducedClips; |
| 964 int32_t reducedGenID; | 964 int32_t reducedGenID; |
| 965 GrReducedClip::InitialState initial; | 965 GrReducedClip::InitialState initial; |
| 966 SkIRect tBounds(inflatedIBounds); | 966 SkIRect tBounds(inflatedIBounds); |
| 967 SkIRect* tightBounds = r.nextBool() ? &tBounds : NULL; | 967 SkIRect* tightBounds = r.nextBool() ? &tBounds : nullptr; |
| 968 GrReducedClip::ReduceClipStack(stack, | 968 GrReducedClip::ReduceClipStack(stack, |
| 969 inflatedIBounds, | 969 inflatedIBounds, |
| 970 &reducedClips, | 970 &reducedClips, |
| 971 &reducedGenID, | 971 &reducedGenID, |
| 972 &initial, | 972 &initial, |
| 973 tightBounds); | 973 tightBounds); |
| 974 | 974 |
| 975 REPORTER_ASSERT(reporter, SkClipStack::kInvalidGenID != reducedGenID); | 975 REPORTER_ASSERT(reporter, SkClipStack::kInvalidGenID != reducedGenID); |
| 976 | 976 |
| 977 // Build a new clip stack based on the reduced clip elements | 977 // Build a new clip stack based on the reduced clip elements |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1122 GrReducedClip::ElementList reducedClips; | 1122 GrReducedClip::ElementList reducedClips; |
| 1123 int32_t reducedGenID; | 1123 int32_t reducedGenID; |
| 1124 GrReducedClip::InitialState initial; | 1124 GrReducedClip::InitialState initial; |
| 1125 SkIRect tightBounds; | 1125 SkIRect tightBounds; |
| 1126 | 1126 |
| 1127 GrReducedClip::ReduceClipStack(stack, | 1127 GrReducedClip::ReduceClipStack(stack, |
| 1128 testCases[i].testBounds, | 1128 testCases[i].testBounds, |
| 1129 &reducedClips, | 1129 &reducedClips, |
| 1130 &reducedGenID, | 1130 &reducedGenID, |
| 1131 &initial, | 1131 &initial, |
| 1132 testCases[i].tighterBounds.isEmpty()
? NULL : &tightBounds); | 1132 testCases[i].tighterBounds.isEmpty()
? nullptr : &tightBounds); |
| 1133 | 1133 |
| 1134 REPORTER_ASSERT(reporter, reducedClips.count() == testCases[i].reduc
edClipCount); | 1134 REPORTER_ASSERT(reporter, reducedClips.count() == testCases[i].reduc
edClipCount); |
| 1135 SkASSERT(reducedClips.count() == testCases[i].reducedClipCount); | 1135 SkASSERT(reducedClips.count() == testCases[i].reducedClipCount); |
| 1136 REPORTER_ASSERT(reporter, reducedGenID == testCases[i].reducedGenID)
; | 1136 REPORTER_ASSERT(reporter, reducedGenID == testCases[i].reducedGenID)
; |
| 1137 SkASSERT(reducedGenID == testCases[i].reducedGenID); | 1137 SkASSERT(reducedGenID == testCases[i].reducedGenID); |
| 1138 REPORTER_ASSERT(reporter, initial == testCases[i].initialState); | 1138 REPORTER_ASSERT(reporter, initial == testCases[i].initialState); |
| 1139 SkASSERT(initial == testCases[i].initialState); | 1139 SkASSERT(initial == testCases[i].initialState); |
| 1140 if (!testCases[i].tighterBounds.isEmpty()) { | 1140 if (!testCases[i].tighterBounds.isEmpty()) { |
| 1141 REPORTER_ASSERT(reporter, tightBounds == testCases[i].tighterBou
nds); | 1141 REPORTER_ASSERT(reporter, tightBounds == testCases[i].tighterBou
nds); |
| 1142 SkASSERT(tightBounds == testCases[i].tighterBounds); | 1142 SkASSERT(tightBounds == testCases[i].tighterBounds); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1212 test_rect_replace(reporter); | 1212 test_rect_replace(reporter); |
| 1213 test_rect_inverse_fill(reporter); | 1213 test_rect_inverse_fill(reporter); |
| 1214 test_path_replace(reporter); | 1214 test_path_replace(reporter); |
| 1215 test_quickContains(reporter); | 1215 test_quickContains(reporter); |
| 1216 #if SK_SUPPORT_GPU | 1216 #if SK_SUPPORT_GPU |
| 1217 test_reduced_clip_stack(reporter); | 1217 test_reduced_clip_stack(reporter); |
| 1218 test_reduced_clip_stack_genid(reporter); | 1218 test_reduced_clip_stack_genid(reporter); |
| 1219 test_reduced_clip_stack_no_aa_crash(reporter); | 1219 test_reduced_clip_stack_no_aa_crash(reporter); |
| 1220 #endif | 1220 #endif |
| 1221 } | 1221 } |
| OLD | NEW |