OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 #ifndef PathOpsThreadedCommon_DEFINED | 7 #ifndef PathOpsThreadedCommon_DEFINED |
8 #define PathOpsThreadedCommon_DEFINED | 8 #define PathOpsThreadedCommon_DEFINED |
9 | 9 |
10 #include "SkCountdown.h" | 10 #include "SkCountdown.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 const char* fKey; | 29 const char* fKey; |
30 char fSerialNo[9]; | 30 char fSerialNo[9]; |
31 skiatest::Reporter* fReporter; | 31 skiatest::Reporter* fReporter; |
32 SkBitmap* fBitmap; | 32 SkBitmap* fBitmap; |
33 }; | 33 }; |
34 | 34 |
35 class PathOpsThreadedTestRunner { | 35 class PathOpsThreadedTestRunner { |
36 public: | 36 public: |
37 PathOpsThreadedTestRunner(skiatest::Reporter* reporter, int threadCount) | 37 PathOpsThreadedTestRunner(skiatest::Reporter* reporter, int threadCount) |
38 : fNumThreads(threadCount) | 38 : fNumThreads(threadCount) |
39 , fThreadPool(threadCount) | |
40 , fCountdown(threadCount) | |
41 , fReporter(reporter) { | 39 , fReporter(reporter) { |
42 } | 40 } |
43 | 41 |
44 ~PathOpsThreadedTestRunner(); | 42 ~PathOpsThreadedTestRunner(); |
45 | 43 |
46 void render(); | 44 void render(); |
47 | 45 |
48 public: | 46 public: |
49 int fNumThreads; | 47 int fNumThreads; |
50 SkTDArray<PathOpsThreadedRunnable*> fRunnables; | 48 SkTDArray<PathOpsThreadedRunnable*> fRunnables; |
51 SkThreadPool fThreadPool; | |
52 SkCountdown fCountdown; | |
53 skiatest::Reporter* fReporter; | 49 skiatest::Reporter* fReporter; |
54 }; | 50 }; |
55 | 51 |
56 class PathOpsThreadedRunnable : public SkRunnable { | 52 class PathOpsThreadedRunnable : public SkRunnable { |
57 public: | 53 public: |
58 PathOpsThreadedRunnable(void (*testFun)(PathOpsThreadState*), int a, int b,
int c, int d, | 54 PathOpsThreadedRunnable(void (*testFun)(PathOpsThreadState*), int a, int b,
int c, int d, |
59 PathOpsThreadedTestRunner* runner) { | 55 PathOpsThreadedTestRunner* runner) { |
60 fState.fA = a; | 56 fState.fA = a; |
61 fState.fB = b; | 57 fState.fB = b; |
62 fState.fC = c; | 58 fState.fC = c; |
63 fState.fD = d; | 59 fState.fD = d; |
64 fState.fReporter = runner->fReporter; | 60 fState.fReporter = runner->fReporter; |
65 fTestFun = testFun; | 61 fTestFun = testFun; |
66 fDone = &runner->fCountdown; | |
67 } | 62 } |
68 | 63 |
69 virtual void run() SK_OVERRIDE { | 64 virtual void run() SK_OVERRIDE { |
70 SkBitmap bitmap; | 65 SkBitmap bitmap; |
71 fState.fBitmap = &bitmap; | 66 fState.fBitmap = &bitmap; |
72 char pathStr[PATH_STR_SIZE]; | 67 char pathStr[PATH_STR_SIZE]; |
73 fState.fPathStr = pathStr; | 68 fState.fPathStr = pathStr; |
74 (*fTestFun)(&fState); | 69 (*fTestFun)(&fState); |
75 fDone->run(); | |
76 } | 70 } |
77 | 71 |
78 private: | 72 private: |
79 PathOpsThreadState fState; | 73 PathOpsThreadState fState; |
80 void (*fTestFun)(PathOpsThreadState*); | 74 void (*fTestFun)(PathOpsThreadState*); |
81 SkRunnable* fDone; | |
82 }; | 75 }; |
83 | 76 |
84 #endif | 77 #endif |
OLD | NEW |