| 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 |