130db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com/* 230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com * Copyright 2011 Google Inc. 330db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com * 430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com * Use of this source code is governed by a BSD-style license that can be 530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com * found in the LICENSE file. 630db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com */ 7574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com 8574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com 930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com#include "gm.h" 1030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com#include "SkCanvas.h" 1130db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com#include "SkPath.h" 1230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com#include "SkRandom.h" 13d3ebb48320cf1b7e969974673e4bd7743816985ebungeman#include "SkRect.h" 14d3ebb48320cf1b7e969974673e4bd7743816985ebungeman#include "SkRRect.h" 1530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 1630db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.comnamespace skiagm { 1730db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 1830db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.comclass ComplexClip2GM : public GM { 1930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.compublic: 20e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org enum Clip { 21e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org kRect_Clip, 22e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org kRRect_Clip, 23e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org kPath_Clip 24e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org }; 25e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org 26e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org ComplexClip2GM(Clip clip, bool antiAlias) 27e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org : fClip(clip) 282470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com , fAntiAlias(antiAlias) { 2963c684a8a609d39da11b4a656223cebf52ca85dccaryclark SkScalar xA = 0.65f; 3063c684a8a609d39da11b4a656223cebf52ca85dccaryclark SkScalar xF = 50.65f; 3163c684a8a609d39da11b4a656223cebf52ca85dccaryclark 3263c684a8a609d39da11b4a656223cebf52ca85dccaryclark SkScalar yA = 0.65f; 3363c684a8a609d39da11b4a656223cebf52ca85dccaryclark SkScalar yF = 50.65f; 3463c684a8a609d39da11b4a656223cebf52ca85dccaryclark 3563c684a8a609d39da11b4a656223cebf52ca85dccaryclark fWidth = xF - xA; 3663c684a8a609d39da11b4a656223cebf52ca85dccaryclark fHeight = yF - yA; 3763c684a8a609d39da11b4a656223cebf52ca85dccaryclark 3863c684a8a609d39da11b4a656223cebf52ca85dccaryclark fTotalWidth = kCols * fWidth + SK_Scalar1 * (kCols + 1) * kPadX; 3963c684a8a609d39da11b4a656223cebf52ca85dccaryclark fTotalHeight = kRows * fHeight + SK_Scalar1 * (kRows + 1) * kPadY; 4063c684a8a609d39da11b4a656223cebf52ca85dccaryclark } 4163c684a8a609d39da11b4a656223cebf52ca85dccaryclark 4263c684a8a609d39da11b4a656223cebf52ca85dccaryclarkprotected: 4336352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onOnceBeforeDraw() override { 4448dd1a26ec07c5baa04856202e4e7e2a53e4d7e5bsalomon@google.com this->setBGColor(SkColorSetRGB(0xDD,0xA0,0xDD)); 45ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com 462470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com // offset the rects a bit so we get antialiasing even in the rect case 474b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar xA = 0.65f; 484b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar xB = 10.65f; 494b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar xC = 20.65f; 504b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar xD = 30.65f; 514b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar xE = 40.65f; 524b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar xF = 50.65f; 534b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org 544b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar yA = 0.65f; 554b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar yB = 10.65f; 564b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar yC = 20.65f; 574b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar yD = 30.65f; 584b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar yE = 40.65f; 594b413c8bb123e42ca4b9c7bfa6bc2167283cb84ccommit-bot@chromium.org SkScalar yF = 50.65f; 6030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 61574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com fRects[0].set(xB, yB, xE, yE); 62e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fRRects[0].setRectXY(fRects[0], 7, 7); 63e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fPaths[0].addRoundRect(fRects[0], 5, 5); 6430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com fRectColors[0] = SK_ColorRED; 6530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 66574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com fRects[1].set(xA, yA, xD, yD); 67e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fRRects[1].setRectXY(fRects[1], 7, 7); 68e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fPaths[1].addRoundRect(fRects[1], 5, 5); 6930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com fRectColors[1] = SK_ColorGREEN; 7030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 71574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com fRects[2].set(xC, yA, xF, yD); 72e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fRRects[2].setRectXY(fRects[2], 7, 7); 73e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fPaths[2].addRoundRect(fRects[2], 5, 5); 7430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com fRectColors[2] = SK_ColorBLUE; 7530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 76574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com fRects[3].set(xA, yC, xD, yF); 77e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fRRects[3].setRectXY(fRects[3], 7, 7); 78e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fPaths[3].addRoundRect(fRects[3], 5, 5); 7930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com fRectColors[3] = SK_ColorYELLOW; 8030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 81574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com fRects[4].set(xC, yC, xF, yF); 82e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fRRects[4].setRectXY(fRects[4], 7, 7); 83e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fPaths[4].addRoundRect(fRects[4], 5, 5); 8430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com fRectColors[4] = SK_ColorCYAN; 8530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 86c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed const SkClipOp ops[] = { 87c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed kDifference_SkClipOp, 88c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed kIntersect_SkClipOp, 89c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed kUnion_SkClipOp, 90c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed kXOR_SkClipOp, 91c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed kReverseDifference_SkClipOp, 92c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed kReplace_SkClipOp, 9330db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com }; 9430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 95f9d610179d7d4198b57b12d06f8d1ca09f580df3scroggo SkRandom r; 9630db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com for (int i = 0; i < kRows; ++i) { 9730db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com for (int j = 0; j < kCols; ++j) { 9830db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com for (int k = 0; k < 5; ++k) { 9930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com fOps[j*kRows+i][k] = ops[r.nextU() % SK_ARRAY_COUNT(ops)]; 10030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 10130db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 10230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 103574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com } 104574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com 105dbfd7ab10883f173f5c1b653a233e18dc6142002mtklein static constexpr int kRows = 5; 106dbfd7ab10883f173f5c1b653a233e18dc6142002mtklein static constexpr int kCols = 5; 107dbfd7ab10883f173f5c1b653a233e18dc6142002mtklein static constexpr int kPadX = 20; 108dbfd7ab10883f173f5c1b653a233e18dc6142002mtklein static constexpr int kPadY = 20; 109574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com 110e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org static const char* ClipStr(Clip clip) { 111e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org switch (clip) { 112e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kRect_Clip: 113e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org return "rect"; 114e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kRRect_Clip: 115e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org return "rrect"; 116e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kPath_Clip: 117e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org return "path"; 118e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org } 119e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org SkDEBUGFAIL("Unknown clip type."); 120e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org return ""; 121e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org } 122e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org 123f059900f75639f1b1a03f2c25333ef9aa22d58b8mtklein SkString onShortName() override { 124e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org if (kRect_Clip == fClip && !fAntiAlias) { 1252470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com return SkString("complexclip2"); 1262470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com } 1272470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com 1282470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com SkString str; 129ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com str.printf("complexclip2_%s_%s", 130e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org ClipStr(fClip), 1312470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com fAntiAlias ? "aa" : "bw"); 1322470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com return str; 133574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com } 134574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com 135f059900f75639f1b1a03f2c25333ef9aa22d58b8mtklein SkISize onISize() override { 136f539318f0d3dba743ec1886d5d9df0fb1be628a1tfarina return SkISize::Make(SkScalarRoundToInt(fTotalWidth), 137f539318f0d3dba743ec1886d5d9df0fb1be628a1tfarina SkScalarRoundToInt(fTotalHeight)); 13845482d1d2b97de185df137a1db40cbe5a62313a5reed@google.com } 139574f29dfa7944879e3266ccdf47dc7f178f21104bsalomon@google.com 140f059900f75639f1b1a03f2c25333ef9aa22d58b8mtklein void onDraw(SkCanvas* canvas) override { 14130db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkPaint rectPaint; 14230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com rectPaint.setStyle(SkPaint::kStroke_Style); 14330db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com rectPaint.setStrokeWidth(-1); 14430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 14530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkPaint fillPaint; 14630db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com fillPaint.setColor(SkColorSetRGB(0xA0,0xDD,0xA0)); 14730db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 14830db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com for (int i = 0; i < kRows; ++i) { 14930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com for (int j = 0; j < kCols; ++j) { 15030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com canvas->save(); 1512470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com 15230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com canvas->translate(kPadX * SK_Scalar1 + (fWidth + kPadX * SK_Scalar1)*j, 15330db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com kPadY * SK_Scalar1 + (fHeight + kPadY * SK_Scalar1)*i); 1542470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com 155ae933ce0ea5fd9d21cb6ef2cee7e729d32690aacrmistry@google.com // draw the original shapes first so we can see the 1562470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com // antialiasing on the clipped draw 15730db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com for (int k = 0; k < 5; ++k) { 1582470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com rectPaint.setColor(fRectColors[k]); 159e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org switch (fClip) { 160e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kRect_Clip: 161e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org canvas->drawRect(fRects[k], rectPaint); 162e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org break; 163e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kRRect_Clip: 164e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org canvas->drawRRect(fRRects[k], rectPaint); 165e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org break; 166e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kPath_Clip: 167e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org canvas->drawPath(fPaths[k], rectPaint); 168e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org break; 1692470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com } 17030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 1712470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com 17230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com for (int k = 0; k < 5; ++k) { 173e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org switch (fClip) { 174e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kRect_Clip: 175e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org canvas->clipRect(fRects[k], 176e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fOps[j*kRows+i][k], 177e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fAntiAlias); 178e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org break; 179e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kRRect_Clip: 180e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org canvas->clipRRect(fRRects[k], 181e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fOps[j*kRows+i][k], 182e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fAntiAlias); 183e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org break; 184e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org case kPath_Clip: 185e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org canvas->clipPath(fPaths[k], 186e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fOps[j*kRows+i][k], 187e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org fAntiAlias); 188e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org break; 1892470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com } 19030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 1912470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com canvas->drawRect(SkRect::MakeWH(fWidth, fHeight), fillPaint); 19230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com canvas->restore(); 19330db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 19430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 19530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com } 19630db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.comprivate: 197e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org Clip fClip; 1982470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com bool fAntiAlias; 19930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkRect fRects[5]; 200e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org SkRRect fRRects[5]; 2012470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com SkPath fPaths[5]; 20230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkColor fRectColors[5]; 203c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed SkClipOp fOps[kRows * kCols][5]; 20430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkScalar fWidth; 20530db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkScalar fHeight; 20630db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkScalar fTotalWidth; 20730db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com SkScalar fTotalHeight; 20830db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 20930db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com typedef GM INHERITED; 21030db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com}; 21130db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 21230db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com////////////////////////////////////////////////////////////////////////////// 21330db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com 214e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org// bw 215e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.orgDEF_GM( return new ComplexClip2GM(ComplexClip2GM::kRect_Clip, false); ) 216e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.orgDEF_GM( return new ComplexClip2GM(ComplexClip2GM::kRRect_Clip, false); ) 217e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.orgDEF_GM( return new ComplexClip2GM(ComplexClip2GM::kPath_Clip, false); ) 2182470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com 219e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.org// aa 220e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.orgDEF_GM( return new ComplexClip2GM(ComplexClip2GM::kRect_Clip, true); ) 221e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.orgDEF_GM( return new ComplexClip2GM(ComplexClip2GM::kRRect_Clip, true); ) 222e5b2af955b7d06815ddd405659ad62a2a8355ca3commit-bot@chromium.orgDEF_GM( return new ComplexClip2GM(ComplexClip2GM::kPath_Clip, true); ) 2232470b25ac858d2262943aaaa0f7e25da5dbeba1crobertphillips@google.com 22430db599c1de70b2832ff9ec05c266a4c9b515d94reed@google.com} 225