/* * 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 ContextRec&) 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) 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