| /* | |
| * Copyright 2015 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkPictureImageGenerator_DEFINED | |
| #define SkPictureImageGenerator_DEFINED | |
| #include "SkImageGenerator.h" | |
| #include "SkTLazy.h" | |
| class SkPictureImageGenerator : public SkImageGenerator { | |
| public: | |
| static std::unique_ptr<SkImageGenerator> Make(const SkISize&, sk_sp<SkPicture>, const SkMatrix*, | |
| const SkPaint*, SkImage::BitDepth, | |
| sk_sp<SkColorSpace>); | |
| protected: | |
| bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options& opts) | |
| override; | |
| #if SK_SUPPORT_GPU | |
| TexGenType onCanGenerateTexture() const override { return TexGenType::kExpensive; } | |
| sk_sp<GrTextureProxy> onGenerateTexture(GrContext*, const SkImageInfo&, const SkIPoint&, | |
| bool willNeedMipMaps) override; | |
| #endif | |
| private: | |
| SkPictureImageGenerator(const SkImageInfo& info, sk_sp<SkPicture>, const SkMatrix*, | |
| const SkPaint*); | |
| sk_sp<SkPicture> fPicture; | |
| SkMatrix fMatrix; | |
| SkTLazy<SkPaint> fPaint; | |
| typedef SkImageGenerator INHERITED; | |
| }; | |
| #endif // SkPictureImageGenerator_DEFINED |