aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2014-08-08 10:05:19 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-08 10:05:20 -0700
commitf4078ad1ec42f549369ac4f639aab18d00afae95 (patch)
tree3bf5664bddbd0614d142910356ce5dd3e9bc19ba /tests
parentbab82ed05b304504e3b5d317486e152dce107313 (diff)
SkRecord: Strip out cull-skipping and y-only drawPosTextH skipping.
These optimizations are outclassed by a general bounding-box hierarchy, and are just going to make plugging that into SkRecordDraw more complicated. BUG=skia: R=robertphillips@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/452983002
Diffstat (limited to 'tests')
-rw-r--r--tests/RecordDrawTest.cpp66
-rw-r--r--tests/RecordOptsTest.cpp72
2 files changed, 0 insertions, 138 deletions
diff --git a/tests/RecordDrawTest.cpp b/tests/RecordDrawTest.cpp
index 5c63b53ee9..38e1222a0d 100644
--- a/tests/RecordDrawTest.cpp
+++ b/tests/RecordDrawTest.cpp
@@ -18,15 +18,6 @@
static const int W = 1920, H = 1080;
-static void draw_pos_text_h(SkCanvas* canvas, const char* text, SkScalar y) {
- const size_t len = strlen(text);
- SkAutoTMalloc<SkScalar> xpos(len);
- for (size_t i = 0; i < len; i++) {
- xpos[i] = (SkScalar)i;
- }
- canvas->drawPosTextH(text, len, xpos, y, SkPaint());
-}
-
class JustOneDraw : public SkDrawPictureCallback {
public:
JustOneDraw() : fCalls(0) {}
@@ -71,63 +62,6 @@ DEF_TEST(RecordDraw_Unbalanced, r) {
assert_type<SkRecords::Restore> (r, rerecord, 3);
}
-// Rerecord into another SkRecord with a clip.
-static void record_clipped(const SkRecord& record, SkRect clip, SkRecord* clipped) {
- SkRecorder recorder(clipped, W, H);
- recorder.clipRect(clip);
- SkRecordDraw(record, &recorder);
-}
-
-DEF_TEST(RecordDraw_PosTextHQuickReject, r) {
- SkRecord record;
- SkRecorder recorder(&record, W, H);
-
- draw_pos_text_h(&recorder, "This will draw.", 20);
- draw_pos_text_h(&recorder, "This won't.", 5000);
-
- SkRecordBoundDrawPosTextH(&record);
-
- SkRecord clipped;
- record_clipped(record, SkRect::MakeLTRB(20, 20, 200, 200), &clipped);
-
- REPORTER_ASSERT(r, 4 == clipped.count());
- assert_type<SkRecords::ClipRect> (r, clipped, 0);
- assert_type<SkRecords::Save> (r, clipped, 1);
- assert_type<SkRecords::DrawPosTextH>(r, clipped, 2);
- assert_type<SkRecords::Restore> (r, clipped, 3);
-}
-
-DEF_TEST(RecordDraw_Culling, r) {
- // Record these 7 drawing commands verbatim.
- SkRecord record;
- SkRecorder recorder(&record, W, H);
-
- recorder.pushCull(SkRect::MakeWH(100, 100));
- recorder.drawRect(SkRect::MakeWH(10, 10), SkPaint());
- recorder.drawRect(SkRect::MakeWH(30, 30), SkPaint());
- recorder.pushCull(SkRect::MakeWH(5, 5));
- recorder.drawRect(SkRect::MakeWH(1, 1), SkPaint());
- recorder.popCull();
- recorder.popCull();
-
- // Take a pass over to match up pushCulls and popCulls.
- SkRecordAnnotateCullingPairs(&record);
-
- // This clip intersects the outer cull, but allows us to quick reject the inner one.
- SkRecord clipped;
- record_clipped(record, SkRect::MakeLTRB(20, 20, 200, 200), &clipped);
-
- // If culling weren't working, we'd see 3 more commands recorded here.
- REPORTER_ASSERT(r, 7 == clipped.count());
- assert_type<SkRecords::ClipRect>(r, clipped, 0);
- assert_type<SkRecords::Save> (r, clipped, 1);
- assert_type<SkRecords::PushCull>(r, clipped, 2);
- assert_type<SkRecords::DrawRect>(r, clipped, 3);
- assert_type<SkRecords::DrawRect>(r, clipped, 4);
- assert_type<SkRecords::PopCull> (r, clipped, 5);
- assert_type<SkRecords::Restore> (r, clipped, 6);
-}
-
DEF_TEST(RecordDraw_SetMatrixClobber, r) {
// Set up an SkRecord that just scales by 2x,3x.
SkRecord scaleRecord;
diff --git a/tests/RecordOptsTest.cpp b/tests/RecordOptsTest.cpp
index 6a9f08ad38..dca9482197 100644
--- a/tests/RecordOptsTest.cpp
+++ b/tests/RecordOptsTest.cpp
@@ -16,55 +16,6 @@
static const int W = 1920, H = 1080;
-DEF_TEST(RecordOpts_Culling, r) {
- SkRecord record;
- SkRecorder recorder(&record, W, H);
-
- recorder.drawRect(SkRect::MakeWH(1000, 10000), SkPaint());
-
- recorder.pushCull(SkRect::MakeWH(100, 100));
- recorder.drawRect(SkRect::MakeWH(10, 10), SkPaint());
- recorder.drawRect(SkRect::MakeWH(30, 30), SkPaint());
- recorder.pushCull(SkRect::MakeWH(5, 5));
- recorder.drawRect(SkRect::MakeWH(1, 1), SkPaint());
- recorder.popCull();
- recorder.popCull();
-
- SkRecordAnnotateCullingPairs(&record);
-
- REPORTER_ASSERT(r, 6 == assert_type<SkRecords::PairedPushCull>(r, record, 1)->skip);
- REPORTER_ASSERT(r, 2 == assert_type<SkRecords::PairedPushCull>(r, record, 4)->skip);
-}
-
-DEF_TEST(RecordOpts_NoopCulls, r) {
- SkRecord record;
- SkRecorder recorder(&record, W, H);
-
- // All should be nooped.
- recorder.pushCull(SkRect::MakeWH(200, 200));
- recorder.pushCull(SkRect::MakeWH(100, 100));
- recorder.popCull();
- recorder.popCull();
-
- // Kept for now. We could peel off a layer of culling.
- recorder.pushCull(SkRect::MakeWH(5, 5));
- recorder.pushCull(SkRect::MakeWH(5, 5));
- recorder.drawRect(SkRect::MakeWH(1, 1), SkPaint());
- recorder.popCull();
- recorder.popCull();
-
- SkRecordNoopCulls(&record);
-
- for (unsigned i = 0; i < 4; i++) {
- assert_type<SkRecords::NoOp>(r, record, i);
- }
- assert_type<SkRecords::PushCull>(r, record, 4);
- assert_type<SkRecords::PushCull>(r, record, 5);
- assert_type<SkRecords::DrawRect>(r, record, 6);
- assert_type<SkRecords::PopCull>(r, record, 7);
- assert_type<SkRecords::PopCull>(r, record, 8);
-}
-
static void draw_pos_text(SkCanvas* canvas, const char* text, bool constantY) {
const size_t len = strlen(text);
SkAutoTMalloc<SkPoint> pos(len);
@@ -89,29 +40,6 @@ DEF_TEST(RecordOpts_StrengthReduction, r) {
assert_type<SkRecords::DrawPosText>(r, record, 1);
}
-DEF_TEST(RecordOpts_TextBounding, r) {
- SkRecord record;
- SkRecorder recorder(&record, W, H);
-
- // First, get a drawPosTextH. Here's a handy way. Its text size will be the default (12).
- draw_pos_text(&recorder, "This will be reduced to drawPosTextH.", true);
- SkRecordReduceDrawPosTextStrength(&record);
-
- const SkRecords::DrawPosTextH* original =
- assert_type<SkRecords::DrawPosTextH>(r, record, 0);
-
- // This should wrap the original DrawPosTextH with minY and maxY.
- SkRecordBoundDrawPosTextH(&record);
-
- const SkRecords::BoundedDrawPosTextH* bounded =
- assert_type<SkRecords::BoundedDrawPosTextH>(r, record, 0);
-
- const SkPaint defaults;
- REPORTER_ASSERT(r, bounded->base == original);
- REPORTER_ASSERT(r, bounded->minY <= SK_Scalar1 - defaults.getTextSize());
- REPORTER_ASSERT(r, bounded->maxY >= SK_Scalar1 + defaults.getTextSize());
-}
-
DEF_TEST(RecordOpts_NoopDrawSaveRestore, r) {
SkRecord record;
SkRecorder recorder(&record, W, H);