diff options
Diffstat (limited to 'src/gpu/GrImageIDTextureAdjuster.h')
-rw-r--r-- | src/gpu/GrImageIDTextureAdjuster.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/gpu/GrImageIDTextureAdjuster.h b/src/gpu/GrImageIDTextureAdjuster.h new file mode 100644 index 0000000000..6c0747a62c --- /dev/null +++ b/src/gpu/GrImageIDTextureAdjuster.h @@ -0,0 +1,48 @@ +/* + * 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 GrImageIDTextureAdjuster_DEFINED +#define GrImageIDTextureAdjuster_DEFINED + +#include "GrTextureParamsAdjuster.h" + +class SkBitmap; +class SkImage_Base; + +/** Implementation for texture-backed SkBitmaps. The bitmap must stay in scope and unmodified + while this object exists. */ +class GrBitmapTextureAdjuster : public GrTextureAdjuster { +public: + explicit GrBitmapTextureAdjuster(const SkBitmap* bmp); + +private: + void makeCopyKey(const CopyParams& params, GrUniqueKey* copyKey) override; + + void didCacheCopy(const GrUniqueKey& copyKey) override; + + const SkBitmap* fBmp; + + typedef GrTextureAdjuster INHERITED; +}; + +/** Implementation for texture-backed SkImages. The image must stay in scope and unmodified while + this object exists. */ +class GrImageTextureAdjuster : public GrTextureAdjuster { +public: + explicit GrImageTextureAdjuster(const SkImage_Base* img); + +private: + void makeCopyKey(const CopyParams& params, GrUniqueKey* copyKey) override; + + void didCacheCopy(const GrUniqueKey& copyKey) override; + + const SkImage_Base* fImageBase; + + typedef GrTextureAdjuster INHERITED; +}; + +#endif |