aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/MatrixClipCollapseTest.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-02-18 18:13:34 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-02-18 18:13:34 +0000
commit1cb6d1a1fd11b23aca42dcb8453e6816836b7b6f (patch)
tree93b1c4c059fdc827fae5df4a3e998fd7467d98ca /tests/MatrixClipCollapseTest.cpp
parenta48822f3ebe86056afc76c96da73c950c80c686a (diff)
Revert changes which were breaking the build.
Revert "Improve saveLayer handling in SkMatrixClipStateMgr" This reverts commit f7d08ed626a4825317405c3708cf2896509209d6. Revert "Compile fix for r13488 (Improve saveLayer handling in SkMatrixClipStateMgr)" This reverts commit a48822f3ebe86056afc76c96da73c950c80c686a. R=robertphillips@google.com TBR=robertphillips@google.com NOTREECHECKS=true NOTRY=True Author: scroggo@google.com Review URL: https://codereview.chromium.org/170973002 git-svn-id: http://skia.googlecode.com/svn/trunk@13490 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/MatrixClipCollapseTest.cpp')
-rw-r--r--tests/MatrixClipCollapseTest.cpp77
1 files changed, 33 insertions, 44 deletions
diff --git a/tests/MatrixClipCollapseTest.cpp b/tests/MatrixClipCollapseTest.cpp
index 6981fe25d4..d379e3351c 100644
--- a/tests/MatrixClipCollapseTest.cpp
+++ b/tests/MatrixClipCollapseTest.cpp
@@ -129,14 +129,10 @@ enum DrawOpType {
kDrawVertices_DrawOpType,
#endif
- kLastNonSaveLayer_DrawOpType = kRect_DrawOpType,
-
- // saveLayer's have to handled apart from the other draw operations
- // since they also alter the save/restore structure.
- kSaveLayer_DrawOpType,
+ kLast_DrawOpType = kRect_DrawOpType
};
-static const int kNonSaveLayerDrawOpTypeCount = kLastNonSaveLayer_DrawOpType + 1;
+static const int kDrawOpTypeCount = kLast_DrawOpType + 1;
typedef void (*PFEmitMC)(SkCanvas* canvas, MatType mat, ClipType clip,
DrawOpType draw, SkTDArray<DrawType>* expected,
@@ -325,13 +321,13 @@ static void emit_draw(SkCanvas* canvas, DrawOpType draw, SkTDArray<DrawType>* ex
static void emit_clip_and_mat(SkCanvas* canvas, MatType mat, ClipType clip,
DrawOpType draw, SkTDArray<DrawType>* expected,
int accumulatedClips) {
- emit_clip(canvas, clip);
- emit_mat(canvas, mat);
-
if (kNone_DrawOpType == draw) {
return;
}
+ emit_clip(canvas, clip);
+ emit_mat(canvas, mat);
+
for (int i = 0; i < accumulatedClips; ++i) {
add_clip(clip, mat, expected);
}
@@ -346,13 +342,13 @@ static void emit_clip_and_mat(SkCanvas* canvas, MatType mat, ClipType clip,
static void emit_mat_and_clip(SkCanvas* canvas, MatType mat, ClipType clip,
DrawOpType draw, SkTDArray<DrawType>* expected,
int accumulatedClips) {
- emit_mat(canvas, mat);
- emit_clip(canvas, clip);
-
if (kNone_DrawOpType == draw) {
return;
}
+ emit_mat(canvas, mat);
+ emit_clip(canvas, clip);
+
// the matrix & clip order will be reversed once collapsed!
for (int i = 0; i < accumulatedClips; ++i) {
add_clip(clip, mat, expected);
@@ -369,15 +365,15 @@ static void emit_mat_and_clip(SkCanvas* canvas, MatType mat, ClipType clip,
static void emit_double_mat_and_clip(SkCanvas* canvas, MatType mat, ClipType clip,
DrawOpType draw, SkTDArray<DrawType>* expected,
int accumulatedClips) {
+ if (kNone_DrawOpType == draw) {
+ return;
+ }
+
emit_mat(canvas, mat);
emit_clip(canvas, clip);
emit_mat(canvas, mat);
emit_clip(canvas, clip);
- if (kNone_DrawOpType == draw) {
- return;
- }
-
for (int i = 0; i < accumulatedClips; ++i) {
add_clip(clip, mat, expected);
add_clip(clip, mat, expected);
@@ -394,14 +390,14 @@ static void emit_double_mat_and_clip(SkCanvas* canvas, MatType mat, ClipType cli
static void emit_mat_clip_clip(SkCanvas* canvas, MatType mat, ClipType clip,
DrawOpType draw, SkTDArray<DrawType>* expected,
int accumulatedClips) {
- emit_mat(canvas, mat);
- emit_clip(canvas, clip);
- emit_clip(canvas, clip);
-
if (kNone_DrawOpType == draw) {
return;
}
+ emit_mat(canvas, mat);
+ emit_clip(canvas, clip);
+ emit_clip(canvas, clip);
+
for (int i = 0; i < accumulatedClips; ++i) {
add_clip(clip, mat, expected);
add_clip(clip, mat, expected);
@@ -469,24 +465,22 @@ static void emit_body2(SkCanvas* canvas, PFEmitMC emitMC, MatType mat,
bool needsSaveRestore = kNone_DrawOpType != draw &&
(kNone_MatType != mat || kNone_ClipType != clip);
- if (kNone_MatType != mat || kNone_ClipType != clip) {
- *expected->append() = SAVE;
+ if (needsSaveRestore) {
+ *expected->append() = SAVE_LAYER;
}
- (*emitMC)(canvas, mat, clip, kSaveLayer_DrawOpType, expected, accumulatedClips+1);
- *expected->append() = SAVE_LAYER;
+ (*emitMC)(canvas, mat, clip, draw, NULL, 0); // these get fused into later ops
// TODO: widen testing to exercise saveLayer's parameters
canvas->saveLayer(NULL, NULL);
if (needsSaveRestore) {
*expected->append() = SAVE;
}
- (*emitMC)(canvas, mat, clip, draw, expected, 1);
+ (*emitMC)(canvas, mat, clip, draw, expected, accumulatedClips+2);
emit_draw(canvas, draw, expected);
if (needsSaveRestore) {
*expected->append() = RESTORE;
}
canvas->restore();
- *expected->append() = RESTORE;
- if (kNone_MatType != mat || kNone_ClipType != clip) {
+ if (needsSaveRestore) {
*expected->append() = RESTORE;
}
}
@@ -507,39 +501,35 @@ static void emit_body3(SkCanvas* canvas, PFEmitMC emitMC, MatType mat,
bool needsSaveRestore = kNone_DrawOpType != draw &&
(kNone_MatType != mat || kNone_ClipType != clip);
- if (kNone_MatType != mat || kNone_ClipType != clip) {
- *expected->append() = SAVE;
- }
- (*emitMC)(canvas, mat, clip, kSaveLayer_DrawOpType, expected, accumulatedClips+1);
+ // This saveLayer will always be forced b.c. we currently can't tell
+ // ahead of time if it will be empty (see comment in SkMatrixClipStateMgr::save)
*expected->append() = SAVE_LAYER;
+
+ (*emitMC)(canvas, mat, clip, draw, NULL, 0); // these get fused into later ops
// TODO: widen testing to exercise saveLayer's parameters
canvas->saveLayer(NULL, NULL);
- (*emitMC)(canvas, mat, clip, kSaveLayer_DrawOpType, expected, 1);
- if (kNone_MatType != mat || kNone_ClipType != clip) {
- *expected->append() = SAVE;
+ (*emitMC)(canvas, mat, clip, draw, NULL, 0); // these get fused into later ops
+ if (needsSaveRestore) {
+ *expected->append() = SAVE_LAYER;
}
- *expected->append() = SAVE_LAYER;
// TODO: widen testing to exercise saveLayer's parameters
canvas->saveLayer(NULL, NULL);
if (needsSaveRestore) {
*expected->append() = SAVE;
}
- (*emitMC)(canvas, mat, clip, draw, expected, 1);
+ (*emitMC)(canvas, mat, clip, draw, expected, accumulatedClips+3);
emit_draw(canvas, draw, expected);
if (needsSaveRestore) {
*expected->append() = RESTORE;
}
- canvas->restore(); // for saveLayer
- *expected->append() = RESTORE; // for saveLayer
- if (kNone_MatType != mat || kNone_ClipType != clip) {
+ canvas->restore();
+ if (needsSaveRestore) {
*expected->append() = RESTORE;
}
canvas->restore();
+
// required to match forced SAVE_LAYER
*expected->append() = RESTORE;
- if (kNone_MatType != mat || kNone_ClipType != clip) {
- *expected->append() = RESTORE;
- }
}
//////////////////////////////////////////////////////////////////////////////
@@ -670,14 +660,13 @@ static void test_collapse(skiatest::Reporter* reporter) {
for (size_t k = 0; k < SK_ARRAY_COUNT(gMCs); ++k) {
for (int l = 0; l < kMatTypeCount; ++l) {
for (int m = 0; m < kClipTypeCount; ++m) {
- for (int n = 0; n < kNonSaveLayerDrawOpTypeCount; ++n) {
+ for (int n = 0; n < kDrawOpTypeCount; ++n) {
#ifdef TEST_COLLAPSE_MATRIX_CLIP_STATE
static int testID = -1;
++testID;
if (testID < -1) {
continue;
}
- SkDebugf("test: %d\n", testID);
#endif
SkTDArray<DrawType> expected, actual;