Index: dm/DMTaskRunner.h |
diff --git a/dm/DMTaskRunner.h b/dm/DMTaskRunner.h |
index 3d4e491b9cb298becb4a30a40462cca1b23f28ac..dd1440ed9accb50740ae56193b5045da7bf8582f 100644 |
--- a/dm/DMTaskRunner.h |
+++ b/dm/DMTaskRunner.h |
@@ -2,9 +2,11 @@ |
#define DMTaskRunner_DEFINED |
#include "DMGpuSupport.h" |
-#include "SkTDArray.h" |
-#include "SkTaskGroup.h" |
+#include "SkThreadPool.h" |
#include "SkTypes.h" |
+ |
+// TaskRunner runs Tasks on one of two threadpools depending on the need for a GrContextFactory. |
+// It's typically a good idea to run fewer GPU threads than CPU threads (go nuts with those). |
namespace DM { |
@@ -13,15 +15,16 @@ |
class TaskRunner : SkNoncopyable { |
public: |
- TaskRunner() {} |
+ explicit TaskRunner(int cpuThreads, int gpuThreads); |
void add(CpuTask* task); |
+ void addNext(CpuTask* task); |
void add(GpuTask* task); |
void wait(); |
private: |
- SkTaskGroup fCpuWork; |
- SkTDArray<GpuTask*> fGpuWork; |
+ SkTThreadPool<void> fCpu; |
+ SkTThreadPool<GrContextFactory> fGpu; |
}; |
} // namespace DM |