|  | /* | 
|  | * Copyright 2016 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #ifndef GrTextureAdjuster_DEFINED | 
|  | #define GrTextureAdjuster_DEFINED | 
|  |  | 
|  | #include "src/core/SkTLazy.h" | 
|  | #include "src/gpu/GrTextureProducer.h" | 
|  | #include "src/gpu/GrTextureProxy.h" | 
|  |  | 
|  | class GrRecordingContext; | 
|  |  | 
|  | /** | 
|  | * GrTextureProducer subclass that can be used when the user already has a texture that represents | 
|  | * image contents. | 
|  | */ | 
|  | class GrTextureAdjuster final : public GrTextureProducer { | 
|  | public: | 
|  | GrTextureAdjuster(GrRecordingContext*, GrSurfaceProxyView, const GrColorInfo&, | 
|  | uint32_t uniqueID); | 
|  |  | 
|  | std::unique_ptr<GrFragmentProcessor> createFragmentProcessor(const SkMatrix& textureMatrix, | 
|  | const SkRect* subset, | 
|  | const SkRect* domain, | 
|  | GrSamplerState) override; | 
|  |  | 
|  | std::unique_ptr<GrFragmentProcessor> createBicubicFragmentProcessor( | 
|  | const SkMatrix& textureMatrix, | 
|  | const SkRect* subset, | 
|  | const SkRect* domain, | 
|  | GrSamplerState::WrapMode wrapX, | 
|  | GrSamplerState::WrapMode wrapY, | 
|  | SkImage::CubicResampler) override; | 
|  |  | 
|  | private: | 
|  | GrSurfaceProxyView onView(GrMipmapped) override; | 
|  |  | 
|  | GrSurfaceProxyView makeMippedCopy(); | 
|  |  | 
|  | GrSurfaceProxyView fOriginal; | 
|  | uint32_t fUniqueID; | 
|  |  | 
|  | using INHERITED = GrTextureProducer; | 
|  | }; | 
|  |  | 
|  | #endif |