skia2/tools/CopyTilesRenderer.h
scroggo@google.com 161e1ba4c0 Created my own flag parser, based off of gflags.
Share common code between bench_ and render_ to set up the PictureRenderer.
Fix an include error in SkPictureRenderer.h.
Simplified parameter passing in render_pictures_main.
Switch to using an SkAutoTUnref for the PictureRenderer.
I also changed the input format somewhat, so the buildbots need to be updated as well: https://codereview.appspot.com/7441044/
Fixed a bug in PictureBenchmark where calling setTimeIndividualTiles(false) sets the member variable to true.
Removed setDeviceType from PictureBenchmark, since only the PictureRenderer needs to know which device type to use.

Some changes to the input format:
'--logPerIter' no longer takes a 1 or 0. Instead, '--logPerIter'
turns it on and '--nologPerIter' turns it off (with off as the
default). (Note that this is for bench_pictures; bench still uses the old format)

Change '--device' to '--config' and 'bitmap' to '8888' to be
the same as gm.

Requires '--r' before inputs (to match gm), though there can be multiple inputs following it.

Changed --enable-deferred-image-decoding (which no one uses but me yet anyway) to --deferImageDecoding, since the former is incompatible with the flag parser.

Changes to behavior:
Show a short error message on failure (rather than the explanation of all
flags).

BUG=https://code.google.com/p/skia/issues/detail?id=1094

Review URL: https://codereview.appspot.com/7230053

git-svn-id: http://skia.googlecode.com/svn/trunk@7961 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-04 16:41:06 +00:00

49 lines
1.3 KiB
C++

/*
* Copyright 2012 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef CopyTilesRenderer_DEFINED
#define CopyTilesRenderer_DEFINED
#include "PictureRenderer.h"
#include "SkTypes.h"
class SkPicture;
class SkString;
namespace sk_tools {
/**
* PictureRenderer that draws the picture and then extracts it into tiles. For large pictures,
* it will divide the picture into large tiles and draw the picture once for each large tile.
*/
class CopyTilesRenderer : public TiledPictureRenderer {
public:
CopyTilesRenderer(int x, int y);
virtual void init(SkPicture* pict) SK_OVERRIDE;
/**
* Similar to TiledPictureRenderer, this will draw a PNG for each tile. However, the
* numbering (and actual tiles) will be different.
*/
virtual bool render(const SkString* path, SkBitmap** out) SK_OVERRIDE;
virtual bool supportsTimingIndividualTiles() SK_OVERRIDE { return false; }
private:
int fXTilesPerLargeTile;
int fYTilesPerLargeTile;
int fLargeTileWidth;
int fLargeTileHeight;
virtual SkString getConfigNameInternal() SK_OVERRIDE;
typedef TiledPictureRenderer INHERITED;
};
} // sk_tools
#endif // CopyTilesRenderer_DEFINED