From 1cb6d1a1fd11b23aca42dcb8453e6816836b7b6f Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Tue, 18 Feb 2014 18:13:34 +0000 Subject: 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 --- tests/MatrixClipCollapseTest.cpp | 77 +++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 44 deletions(-) (limited to 'tests/MatrixClipCollapseTest.cpp') 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* expected, @@ -325,13 +321,13 @@ static void emit_draw(SkCanvas* canvas, DrawOpType draw, SkTDArray* ex static void emit_clip_and_mat(SkCanvas* canvas, MatType mat, ClipType clip, DrawOpType draw, SkTDArray* 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* 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* 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* 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 expected, actual; -- cgit v1.2.3