diff options
Diffstat (limited to 'src/image/SkImageShader.h')
-rw-r--r-- | src/image/SkImageShader.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/image/SkImageShader.h b/src/image/SkImageShader.h new file mode 100644 index 0000000000..fdd7976aad --- /dev/null +++ b/src/image/SkImageShader.h @@ -0,0 +1,44 @@ +/* + * 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 SkImageShader_DEFINED +#define SkImageShader_DEFINED + +#include "SkImage.h" +#include "SkShader.h" + +class SkImageShader : public SkShader { +public: + static SkShader* Create(const SkImage*, TileMode tx, TileMode ty, const SkMatrix* localMatrix); + + bool isOpaque() const override; + size_t contextSize() const override; + + SK_TO_STRING_OVERRIDE() + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageShader) + +#if SK_SUPPORT_GPU + const GrFragmentProcessor* asFragmentProcessor(GrContext*, const SkMatrix& viewM, + const SkMatrix*, SkFilterQuality, + GrProcessorDataManager*) const override; +#endif + +protected: + void flatten(SkWriteBuffer&) const override; + Context* onCreateContext(const ContextRec&, void* storage) const override; + + SkAutoTUnref<const SkImage> fImage; + const TileMode fTileModeX; + const TileMode fTileModeY; + +private: + SkImageShader(const SkImage*, TileMode tx, TileMode ty, const SkMatrix* localMatrix); + + typedef SkShader INHERITED; +}; + +#endif |