1ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org#include "DMCpuGMTask.h" 299589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org#include "DMExpectationsTask.h" 32d3a7897e55a76a4dc9f27ae865d1d230163f584commit-bot@chromium.org#include "DMPipeTask.h" 4a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org#include "DMQuiltTask.h" 5e3ff558a4baf4cb924e7513a81c8073ddae385fccommit-bot@chromium.org#include "DMRecordTask.h" 6d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "DMReplayTask.h" 7192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org#include "DMSerializeTask.h" 8d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com#include "DMUtil.h" 9a7a9f37a3195e8efa1571a3707457c26e2f896a9mtklein@google.com#include "DMWriteTask.h" 10d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 11d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.comnamespace DM { 12d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 13ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgCpuGMTask::CpuGMTask(const char* config, 14ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org Reporter* reporter, 15ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org TaskRunner* taskRunner, 16ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org skiagm::GMRegistry::Factory gmFactory, 17e4d3e605f74a23d050abad29909af421d8b1cf1amtklein const Expectations& expectations, 18ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org SkColorType colorType) 19ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.org : CpuTask(reporter, taskRunner) 20d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com , fGMFactory(gmFactory) 21d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com , fGM(fGMFactory(NULL)) 2238aeb0fd7a2bdab5e44531d96045dffe25c8e2b0commit-bot@chromium.org , fName(UnderJoin(fGM->getName(), config)) 2399589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org , fExpectations(expectations) 2415a140599942f70e47380e3f700a825c7cece3b4commit-bot@chromium.org , fColorType(colorType) 25d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com {} 26d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 27ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgvoid CpuGMTask::draw() { 28d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com SkBitmap bitmap; 29266420722e18dcc8b6d4a7379a42b8591ccd2b6dcommit-bot@chromium.org AllocatePixels(fColorType, fGM->getISize().width(), fGM->getISize().height(), &bitmap); 30d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 31192cbf67b281b20477320134962d554ed823c691commit-bot@chromium.org SkCanvas canvas(bitmap); 32d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com canvas.concat(fGM->getInitialTransform()); 33d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com fGM->draw(&canvas); 34d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com canvas.flush(); 35d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 36d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#define SPAWN(ChildTask, ...) this->spawnChild(SkNEW_ARGS(ChildTask, (*this, __VA_ARGS__))) 3799589af4e333422639d7e873207dd323fdd6e808commit-bot@chromium.org SPAWN(ExpectationsTask, fExpectations, bitmap); 38ee21a3e395298021ca70e0d72bf2d983b2fc9225mtklein@google.com 3990b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org SPAWN(PipeTask, fGMFactory(NULL), bitmap, PipeTask::kInProcess_Mode); 4090b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org SPAWN(PipeTask, fGMFactory(NULL), bitmap, PipeTask::kCrossProcess_Mode); 4190b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org SPAWN(PipeTask, fGMFactory(NULL), bitmap, PipeTask::kSharedAddress_Mode); 42a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org SPAWN(QuiltTask, fGMFactory(NULL), bitmap); 4390b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org SPAWN(RecordTask, fGMFactory(NULL), bitmap, RecordTask::kOptimize_Mode); 4490b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org SPAWN(RecordTask, fGMFactory(NULL), bitmap, RecordTask::kNoOptimize_Mode); 4590b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org SPAWN(ReplayTask, fGMFactory(NULL), bitmap, ReplayTask::kNormal_Mode); 4690b5a2a653b312ff9bcd7102412da2dbeb52368ccommit-bot@chromium.org SPAWN(ReplayTask, fGMFactory(NULL), bitmap, ReplayTask::kRTree_Mode); 47d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com SPAWN(SerializeTask, fGMFactory(NULL), bitmap); 48c1362424b864ee3ae7aa44971985e5481057363acommit-bot@chromium.org 49d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com SPAWN(WriteTask, bitmap); 50d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#undef SPAWN 51d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com} 52d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 53ef57b7e65330d5f794a513630517907500f1c1d0commit-bot@chromium.orgbool CpuGMTask::shouldSkip() const { 5415a140599942f70e47380e3f700a825c7cece3b4commit-bot@chromium.org if (kRGB_565_SkColorType == fColorType && (fGM->getFlags() & skiagm::GM::kSkip565_Flag)) { 55d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com return true; 56d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com } 57d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com if (fGM->getFlags() & skiagm::GM::kGPUOnly_Flag) { 58d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com return true; 59d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com } 60d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com return false; 61d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com} 62d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com 63d36522d12d3e71958e50683a7eef43dc2a47d96dmtklein@google.com} // namespace DM 64