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: 25b1aded8edd1d809cded20ff546c6e9218b43cda4krajcevski#if SK_SUPPORT_GPU 26b1aded8edd1d809cded20ff546c6e9218b43cda4krajcevski CopyTilesRenderer(const GrContext::Options &opts, int x, int y); 27b1aded8edd1d809cded20ff546c6e9218b43cda4krajcevski#else 284a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com CopyTilesRenderer(int x, int y); 29b1aded8edd1d809cded20ff546c6e9218b43cda4krajcevski#endif 30ce4dd3de38cd7c29bf5b9d8a8efb55c08ec9be47robertphillips virtual void init(const SkPicture* pict, 31ce4dd3de38cd7c29bf5b9d8a8efb55c08ec9be47robertphillips const SkString* writePath, 32ce4dd3de38cd7c29bf5b9d8a8efb55c08ec9be47robertphillips const SkString* mismatchPath, 333f0451772109959fcb79bacf2c9a03e0eb39ff27commit-bot@chromium.org const SkString* inputFilename, 3478c71272fb26852bf3d2ca31785e61d4a598af82robertphillips bool useChecksumBasedFilenames, 3536352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool useMultiPictureDraw) override; 364a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com 374a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com /** 384a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com * Similar to TiledPictureRenderer, this will draw a PNG for each tile. However, the 394a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com * numbering (and actual tiles) will be different. 404a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com */ 4136352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool render(SkBitmap** out) override; 424a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com 4336352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool supportsTimingIndividualTiles() override { return false; } 44161e1ba4c0a82e21c7d68808529699fd2394ad6cscroggo@google.com 454a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com private: 464a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com int fXTilesPerLargeTile; 474a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com int fYTilesPerLargeTile; 484a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com 494a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com int fLargeTileWidth; 504a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com int fLargeTileHeight; 514a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com 5236352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkString getConfigNameInternal() override; 534a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com 544a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com typedef TiledPictureRenderer INHERITED; 554a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com }; 564a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com} // sk_tools 574a26d9d62a6d762a518c0ca08d43189916b75cf2scroggo@google.com#endif // CopyTilesRenderer_DEFINED 58