blob: 229a94dae0e6fc9446f342c50e892155807252bf [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"
5#include <pthread.h>
caryclark@google.comcd4421d2012-03-01 19:16:31 +00006
caryclark@google.com198e0542012-03-30 18:47:02 +00007class SkCanvas;
caryclark@google.com59823f72012-08-09 18:17:47 +00008struct State4;
caryclark@google.com198e0542012-03-30 18:47:02 +00009
10//extern int comparePaths(const SkPath& one, const SkPath& two);
caryclark@google.com1577e8f2012-05-22 17:01:14 +000011extern int comparePaths(const SkPath& one, const SkPath& two, SkBitmap& bitmap,
12 SkCanvas* canvas);
caryclark@google.comcd4421d2012-03-01 19:16:31 +000013extern void comparePathsTiny(const SkPath& one, const SkPath& two);
caryclark@google.com752b60e2012-03-22 21:11:17 +000014extern bool drawAsciiPaths(const SkPath& one, const SkPath& two,
caryclark@google.com2e7f4c82012-03-20 21:11:59 +000015 bool drawPaths);
caryclark@google.com2e7f4c82012-03-20 21:11:59 +000016extern void showPath(const SkPath& path, const char* str = NULL);
caryclark@google.com198e0542012-03-30 18:47:02 +000017extern bool testSimplify(const SkPath& path, bool fill, SkPath& out,
18 SkBitmap& bitmap, SkCanvas* canvas = 0);
caryclark@google.com8dcf1142012-07-02 20:27:02 +000019extern bool testSimplifyx(const SkPath& path, SkPath& out,
caryclark@google.com59823f72012-08-09 18:17:47 +000020 State4& state, const char* pathStr);
caryclark@google.com8dcf1142012-07-02 20:27:02 +000021extern bool testSimplifyx(const SkPath& path);
caryclark@google.com78e17132012-04-17 11:40:34 +000022
23struct State4 {
24 State4();
caryclark@google.com2ddff932012-08-07 21:25:27 +000025 static pthread_mutex_t addQueue;
26 static pthread_cond_t checkQueue;
27 pthread_cond_t initialized;
28 static State4* queue;
caryclark@google.com2ddff932012-08-07 21:25:27 +000029 pthread_t threadID;
30 int index;
31 bool done;
32 bool last;
caryclark@google.com78e17132012-04-17 11:40:34 +000033 int a;
34 int b;
35 int c;
caryclark@google.com59823f72012-08-09 18:17:47 +000036 int d; // sometimes 1 if abc_is_a_triangle
caryclark@google.com27c449a2012-07-27 18:26:38 +000037 int testsRun;
caryclark@google.com47580692012-07-23 12:14:49 +000038 char filename[256];
caryclark@google.com2ddff932012-08-07 21:25:27 +000039
caryclark@google.com78e17132012-04-17 11:40:34 +000040 SkCanvas* canvas;
41 SkBitmap bitmap;
caryclark@google.com78e17132012-04-17 11:40:34 +000042};
43
44void createThread(State4* statePtr, void* (*test)(void* ));
caryclark@google.com59823f72012-08-09 18:17:47 +000045int dispatchTest4(void* (*testFun)(void* ), int a, int b, int c, int d);
46void initializeTests(const char* testName, size_t testNameSize);
47void outputProgress(const State4& state, const char* pathStr);
48void outputToStream(const State4& state, const char* pathStr, SkWStream& outFile);
49bool runNextTestSet(State4& state);
50int waitForCompletion();