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

Unified Diff: tools/bench_record.cpp

Issue 238273012: Staged removal of SkPicture-derived classes (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: have SkPicture only friend SkPictureRecorder once Created 6 years, 8 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 | « tools/PictureRenderingFlags.cpp ('k') | tools/filtermain.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/bench_record.cpp
===================================================================
--- tools/bench_record.cpp (revision 14237)
+++ tools/bench_record.cpp (working copy)
@@ -34,50 +34,29 @@
DEFINE_string(bbh, "", "Turn on the bbh and select the type, one of rtree, tilegrid, quadtree");
DEFINE_bool(skr, false, "Record SKR instead of SKP.");
-typedef SkPictureFactory* (*PictureFactory)();
-
-static SkPictureFactory* vanilla_factory() {
- return NULL;
-}
-
-static SkPictureFactory* rtree_factory() {
- return SkNEW(SkRTreePictureFactory);
-}
-
-static SkPictureFactory* tilegrid_factory() {
- SkTileGridPicture::TileGridInfo info;
- info.fTileInterval.set(FLAGS_tileGridSize, FLAGS_tileGridSize);
- info.fMargin.setEmpty();
- info.fOffset.setZero();
- return SkNEW_ARGS(SkTileGridPictureFactory, (info));
-}
-
-static SkPictureFactory* quadtree_factory() {
- return SkNEW(SkQuadTreePictureFactory);
-}
-
-static PictureFactory parse_FLAGS_bbh() {
+static SkBBHFactory* parse_FLAGS_bbh() {
if (FLAGS_bbh.isEmpty()) {
- return &vanilla_factory;
- }
- if (FLAGS_bbh.count() != 1) {
- SkDebugf("Multiple bbh arguments supplied.\n");
return NULL;
}
+
if (FLAGS_bbh.contains("rtree")) {
- return rtree_factory;
+ return SkNEW(SkRTreeFactory);
}
if (FLAGS_bbh.contains("tilegrid")) {
- return tilegrid_factory;
+ SkTileGridFactory::TileGridInfo info;
+ info.fTileInterval.set(FLAGS_tileGridSize, FLAGS_tileGridSize);
+ info.fMargin.setEmpty();
+ info.fOffset.setZero();
+ return SkNEW_ARGS(SkTileGridFactory, (info));
}
if (FLAGS_bbh.contains("quadtree")) {
- return quadtree_factory;
+ return SkNEW(SkQuadTreeFactory);
}
SkDebugf("Invalid bbh type %s, must be one of rtree, tilegrid, quadtree.\n", FLAGS_bbh[0]);
return NULL;
}
-static void bench_record(SkPicture* src, const char* name, PictureFactory pictureFactory) {
+static void bench_record(SkPicture* src, const char* name, SkBBHFactory* bbhFactory) {
const SkMSec start = SkTime::GetMSecs();
const int width = src ? src->width() : FLAGS_nullSize;
const int height = src ? src->height() : FLAGS_nullSize;
@@ -91,10 +70,8 @@
}
SkDELETE(SkRecording::Delete(recording)); // delete the SkPlayback*.
} else {
- int recordingFlags = FLAGS_flags;
- SkAutoTUnref<SkPictureFactory> factory(pictureFactory());
- SkPictureRecorder recorder(factory);
- SkCanvas* canvas = recorder.beginRecording(width, height, recordingFlags);
+ SkPictureRecorder recorder;
+ SkCanvas* canvas = recorder.beginRecording(width, height, bbhFactory, FLAGS_flags);
if (NULL != src) {
src->draw(canvas);
}
@@ -114,11 +91,13 @@
SkCommandLineFlags::Parse(argc, argv);
SkAutoGraphics autoGraphics;
- PictureFactory pictureFactory = parse_FLAGS_bbh();
- if (pictureFactory == NULL) {
+ if (FLAGS_bbh.count() > 1) {
+ SkDebugf("Multiple bbh arguments supplied.\n");
return 1;
}
- bench_record(NULL, "NULL", pictureFactory);
+
+ SkAutoTDelete<SkBBHFactory> bbhFactory(parse_FLAGS_bbh());
+ bench_record(NULL, "NULL", bbhFactory.get());
if (FLAGS_skps.isEmpty()) {
return 0;
}
@@ -142,7 +121,7 @@
failed = true;
continue;
}
- bench_record(src, filename.c_str(), pictureFactory);
+ bench_record(src, filename.c_str(), bbhFactory.get());
}
return failed ? 1 : 0;
}
« no previous file with comments | « tools/PictureRenderingFlags.cpp ('k') | tools/filtermain.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698