Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: dm/DMTask.h

Issue 22839016: Skeleton of DM (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: one last sync Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « dm/DMReporter.cpp ('k') | dm/DMTask.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dm/DMTask.h
diff --git a/dm/DMTask.h b/dm/DMTask.h
new file mode 100644
index 0000000000000000000000000000000000000000..744fd6bb9c0634fcee000e09960ea1eadfa91e71
--- /dev/null
+++ b/dm/DMTask.h
@@ -0,0 +1,43 @@
+#ifndef DMTask_DEFINED
+#define DMTask_DEFINED
+
+#include "DMReporter.h"
+#include "SkRunnable.h"
+#include "SkThreadPool.h"
+
+// DM will run() these tasks on one of two threadpools, depending on the result
+// of usesGpu(). The subclasses can call fail() to mark this task as failed,
+// or make any number of spawnChild() calls to kick off dependent tasks.
+//
+// Task deletes itself when run.
+
+namespace DM {
+
+class TaskRunner;
+
+class Task : public SkRunnable {
+public:
+ Task(Reporter* reporter, TaskRunner* taskRunner);
+ Task(const Task& that);
+ virtual ~Task();
+
+ void run();
+
+ virtual void draw() = 0;
+ virtual bool usesGpu() const = 0;
+ virtual bool shouldSkip() const = 0;
+ virtual SkString name() const = 0;
+
+protected:
+ void spawnChild(Task* task);
+ void fail();
+
+private:
+ // Both unowned.
+ Reporter* fReporter;
+ TaskRunner* fTaskRunner;
+};
+
+} // namespace DM
+
+#endif // DMTask_DEFINED
« no previous file with comments | « dm/DMReporter.cpp ('k') | dm/DMTask.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698