2 * Copyright 2012 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
7 #ifndef PathOpsThreadedCommon_DEFINED
8 #define PathOpsThreadedCommon_DEFINED
10 #include "SkGraphics.h"
11 #include "SkRunnable.h"
12 #include "SkTDArray.h"
14 #define PATH_STR_SIZE 512
16 class PathOpsThreadedRunnable;
22 struct PathOpsThreadState {
30 skiatest::Reporter* fReporter;
34 class PathOpsThreadedTestRunner {
36 PathOpsThreadedTestRunner(skiatest::Reporter* reporter) : fReporter(reporter) {}
38 ~PathOpsThreadedTestRunner();
43 SkTDArray<PathOpsThreadedRunnable*> fRunnables;
44 skiatest::Reporter* fReporter;
47 class PathOpsThreadedRunnable : public SkRunnable {
49 PathOpsThreadedRunnable(void (*testFun)(PathOpsThreadState*), int a, int b, int c, int d,
50 PathOpsThreadedTestRunner* runner) {
55 fState.fReporter = runner->fReporter;
59 PathOpsThreadedRunnable(void (*testFun)(PathOpsThreadState*), const char* str,
60 PathOpsThreadedTestRunner* runner) {
61 SkASSERT(strlen(str) < sizeof(fState.fSerialNo) - 1);
62 strcpy(fState.fSerialNo, str);
63 fState.fReporter = runner->fReporter;
67 PathOpsThreadedRunnable(void (*testFun)(PathOpsThreadState*), int dirNo, const char* str,
68 PathOpsThreadedTestRunner* runner) {
69 SkASSERT(strlen(str) < sizeof(fState.fSerialNo) - 1);
71 strcpy(fState.fSerialNo, str);
72 fState.fReporter = runner->fReporter;
76 virtual void run() SK_OVERRIDE {
78 fState.fBitmap = &bitmap;
79 char pathStr[PATH_STR_SIZE];
80 fState.fPathStr = pathStr;
81 SkGraphics::SetTLSFontCacheLimit(1 * 1024 * 1024);
86 PathOpsThreadState fState;
87 void (*fTestFun)(PathOpsThreadState*);