| Index: tests/PathOpsSkpClipTest.cpp
|
| ===================================================================
|
| --- tests/PathOpsSkpClipTest.cpp (revision 0)
|
| +++ tests/PathOpsSkpClipTest.cpp (revision 0)
|
| @@ -0,0 +1,61 @@
|
| +#include "SkBitmap.h"
|
| +#include "SkDevice.h"
|
| +#include "SkCanvas.h"
|
| +#include "SkImageEncoder.h"
|
| +#include "SkStream.h"
|
| +#include "SkOSFile.h"
|
| +#include "SkPicture.h"
|
| +#include "SkString.h"
|
| +#include "Test.h"
|
| +
|
| +static void make_filepath(SkString* path, const char* dir, const SkString& name) {
|
| + size_t len = strlen(dir);
|
| + path->set(dir);
|
| + if (len > 0 && dir[len - 1] != '/') {
|
| + path->append("\\");
|
| + }
|
| + path->append(name);
|
| +}
|
| +
|
| +static void PathOpsSkpClipTest(skiatest::Reporter* reporter) {
|
| +const char pictDir[] = "C:\\Users\\caryclark\\skp";
|
| + const char outSkpClipDir[] = "C:\\Users\\caryclark\\skpClip";
|
| + const char outOldClipDir[] = "C:\\Users\\caryclark\\oldClip";
|
| + SkOSFile::Iter iter(pictDir, "skp");
|
| + SkString filename;
|
| + while (iter.next(&filename)) {
|
| +#if 0
|
| + if (strcmp(filename.c_str(), "tabl_androidpolice.skp")) {
|
| + continue;
|
| + }
|
| +#endif
|
| + SkString path;
|
| + make_filepath(&path, pictDir, filename);
|
| + SkFILEStream stream(path.c_str());
|
| + if (!stream.isValid()) {
|
| + continue;
|
| + }
|
| + SkPicture* pic = SkNEW_ARGS(SkPicture, (&stream));
|
| + int width = pic->width();
|
| + int height = pic->height();
|
| + SkBitmap bitmap;
|
| + bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height);
|
| + bitmap.allocPixels();
|
| + SkCanvas canvas(bitmap);
|
| + filename.remove(filename.size() - 3, 3);
|
| + filename.append("png");
|
| + for (int i = 0; i < 2; ++i) {
|
| + bool useOp = i ? true : false;
|
| + canvas.setAllowSimplifyClip(useOp);
|
| + pic->draw(&canvas);
|
| + SkString outFile;
|
| + make_filepath(&outFile, useOp ? outSkpClipDir : outOldClipDir, filename);
|
| + SkImageEncoder::EncodeFile(outFile.c_str(), bitmap, SkImageEncoder::kPNG_Type, 100);
|
| + }
|
| + SkDELETE(pic);
|
| + reporter->bumpTestCount();
|
| + }
|
| +}
|
| +
|
| +#include "TestClassDef.h"
|
| +DEFINE_TESTCLASS_SHORT(PathOpsSkpClipTest)
|
|
|