CopyTilesRenderer.h revision 3f0451772109959fcb79bacf2c9a03e0eb39ff27
14a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com/*
24a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com * Copyright 2012 Google Inc.
34a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com *
44a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com * Use of this source code is governed by a BSD-style license that can be
54a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com * found in the LICENSE file.
64a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com */
74a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
84a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com#ifndef CopyTilesRenderer_DEFINED
94a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com#define CopyTilesRenderer_DEFINED
104a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
114a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com#include "PictureRenderer.h"
124a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com#include "SkTypes.h"
134a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
144a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.comclass SkPicture;
154a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.comclass SkString;
164a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
174a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.comnamespace sk_tools {
184a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com    /**
194a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com     *  PictureRenderer that draws the picture and then extracts it into tiles. For large pictures,
204a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com     *  it will divide the picture into large tiles and draw the picture once for each large tile.
214a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com     */
224a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com    class CopyTilesRenderer : public TiledPictureRenderer {
234a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
244a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com    public:
254a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        CopyTilesRenderer(int x, int y);
263f0451772109959fcb79bacf2c9a03e0eb39ff27commit-bot@chromium.org        virtual void init(SkPicture* pict, const SkString* writePath, const SkString* mismatchPath,
273f0451772109959fcb79bacf2c9a03e0eb39ff27commit-bot@chromium.org                          const SkString* inputFilename,
28f5e315ccf1ae2941f7cf53fa53e5c8c4bb665fe1commit-bot@chromium.org                          bool useChecksumBasedFilenames) SK_OVERRIDE;
294a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
304a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        /**
314a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com         *  Similar to TiledPictureRenderer, this will draw a PNG for each tile. However, the
324a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com         *  numbering (and actual tiles) will be different.
334a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com         */
34f5e315ccf1ae2941f7cf53fa53e5c8c4bb665fe1commit-bot@chromium.org        virtual bool render(SkBitmap** out) SK_OVERRIDE;
354a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
36161e1ba4c0a82e21c7d68808529699fd2394ad6cscroggo@google.com        virtual bool supportsTimingIndividualTiles() SK_OVERRIDE { return false; }
37161e1ba4c0a82e21c7d68808529699fd2394ad6cscroggo@google.com
384a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com    private:
394a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        int fXTilesPerLargeTile;
404a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        int fYTilesPerLargeTile;
414a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
424a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        int fLargeTileWidth;
434a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        int fLargeTileHeight;
444a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
454a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        virtual SkString getConfigNameInternal() SK_OVERRIDE;
464a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com
474a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com        typedef TiledPictureRenderer INHERITED;
484a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com    };
494a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com} // sk_tools
504a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com#endif // CopyTilesRenderer_DEFINED
51