blob: d0ae3a5dc2e855528105ac3dad6f474394568434 [file] [log] [blame]
caryclark@google.comcd4421d2012-03-01 19:16:31 +00001
2
caryclark@google.comd88e0892012-03-27 13:23:51 +00003#include "ShapeOps.h"
caryclark@google.com78e17132012-04-17 11:40:34 +00004#include "SkBitmap.h"
caryclark@google.com03f97062012-08-21 13:13:52 +00005#include "SkStream.h"
caryclark@google.com78e17132012-04-17 11:40:34 +00006#include <pthread.h>
caryclark@google.comcd4421d2012-03-01 19:16:31 +00007
caryclark@google.com198e0542012-03-30 18:47:02 +00008class SkCanvas;
caryclark@google.com59823f72012-08-09 18:17:47 +00009struct State4;
caryclark@google.com198e0542012-03-30 18:47:02 +000010
11//extern int comparePaths(const SkPath& one, const SkPath& two);
caryclark@google.com1577e8f2012-05-22 17:01:14 +000012extern int comparePaths(const SkPath& one, const SkPath& two, SkBitmap& bitmap,
13 SkCanvas* canvas);
caryclark@google.comcd4421d2012-03-01 19:16:31 +000014extern void comparePathsTiny(const SkPath& one, const SkPath& two);
caryclark@google.com752b60e2012-03-22 21:11:17 +000015extern bool drawAsciiPaths(const SkPath& one, const SkPath& two,
caryclark@google.com2e7f4c82012-03-20 21:11:59 +000016 bool drawPaths);
caryclark@google.com2e7f4c82012-03-20 21:11:59 +000017extern void showPath(const SkPath& path, const char* str = NULL);
caryclark@google.com198e0542012-03-30 18:47:02 +000018extern bool testSimplify(const SkPath& path, bool fill, SkPath& out,
19 SkBitmap& bitmap, SkCanvas* canvas = 0);
caryclark@google.com24bec792012-08-20 12:43:57 +000020extern bool testSimplifyx(SkPath& path, bool useXor, SkPath& out,
caryclark@google.com59823f72012-08-09 18:17:47 +000021 State4& state, const char* pathStr);
caryclark@google.com8dcf1142012-07-02 20:27:02 +000022extern bool testSimplifyx(const SkPath& path);
caryclark@google.com78e17132012-04-17 11:40:34 +000023
24struct State4 {
25 State4();
caryclark@google.com2ddff932012-08-07 21:25:27 +000026 static pthread_mutex_t addQueue;
27 static pthread_cond_t checkQueue;
28 pthread_cond_t initialized;
29 static State4* queue;
caryclark@google.com2ddff932012-08-07 21:25:27 +000030 pthread_t threadID;
31 int index;
32 bool done;
33 bool last;
caryclark@google.com78e17132012-04-17 11:40:34 +000034 int a;
35 int b;
36 int c;
caryclark@google.com59823f72012-08-09 18:17:47 +000037 int d; // sometimes 1 if abc_is_a_triangle
caryclark@google.com27c449a2012-07-27 18:26:38 +000038 int testsRun;
caryclark@google.com47580692012-07-23 12:14:49 +000039 char filename[256];
caryclark@google.com2ddff932012-08-07 21:25:27 +000040
caryclark@google.com78e17132012-04-17 11:40:34 +000041 SkCanvas* canvas;
42 SkBitmap bitmap;
caryclark@google.com78e17132012-04-17 11:40:34 +000043};
44
45void createThread(State4* statePtr, void* (*test)(void* ));
caryclark@google.com59823f72012-08-09 18:17:47 +000046int dispatchTest4(void* (*testFun)(void* ), int a, int b, int c, int d);
47void initializeTests(const char* testName, size_t testNameSize);
caryclark@google.com24bec792012-08-20 12:43:57 +000048void outputProgress(const State4& state, const char* pathStr, SkPath::FillType );
49void outputToStream(const State4& state, const char* pathStr, SkPath::FillType, SkWStream& outFile);
caryclark@google.com59823f72012-08-09 18:17:47 +000050bool runNextTestSet(State4& state);
51int waitForCompletion();