/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ /************************************************************************************************** *** This file was autogenerated from GrYUVtoRGBEffect.fp; do not modify. **************************************************************************************************/ #ifndef GrYUVtoRGBEffect_DEFINED #define GrYUVtoRGBEffect_DEFINED #include "SkTypes.h" #if SK_SUPPORT_GPU #include "GrFragmentProcessor.h" #include "GrCoordTransform.h" class GrYUVtoRGBEffect : public GrFragmentProcessor { public: static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> yProxy, sk_sp<GrTextureProxy> uProxy, sk_sp<GrTextureProxy> vProxy, const SkISize sizes[3], SkYUVColorSpace colorSpace, bool nv12); SkMatrix44 ySamplerTransform() const { return fYSamplerTransform; } SkMatrix44 uSamplerTransform() const { return fUSamplerTransform; } SkMatrix44 vSamplerTransform() const { return fVSamplerTransform; } SkMatrix44 colorSpaceMatrix() const { return fColorSpaceMatrix; } bool nv12() const { return fNv12; } static std::unique_ptr<GrFragmentProcessor> Make( sk_sp<GrTextureProxy> ySampler, SkMatrix44 ySamplerTransform, sk_sp<GrTextureProxy> uSampler, SkMatrix44 uSamplerTransform, sk_sp<GrTextureProxy> vSampler, SkMatrix44 vSamplerTransform, SkMatrix44 colorSpaceMatrix, bool nv12, GrSamplerState uvSamplerParams) { return std::unique_ptr<GrFragmentProcessor>(new GrYUVtoRGBEffect( ySampler, ySamplerTransform, uSampler, uSamplerTransform, vSampler, vSamplerTransform, colorSpaceMatrix, nv12, uvSamplerParams)); } GrYUVtoRGBEffect(const GrYUVtoRGBEffect& src); std::unique_ptr<GrFragmentProcessor> clone() const override; const char* name() const override { return "YUVtoRGBEffect"; } private: GrYUVtoRGBEffect(sk_sp<GrTextureProxy> ySampler, SkMatrix44 ySamplerTransform, sk_sp<GrTextureProxy> uSampler, SkMatrix44 uSamplerTransform, sk_sp<GrTextureProxy> vSampler, SkMatrix44 vSamplerTransform, SkMatrix44 colorSpaceMatrix, bool nv12, GrSamplerState uvSamplerParams) : INHERITED(kGrYUVtoRGBEffect_ClassID, kNone_OptimizationFlags) , fYSampler(std::move(ySampler)) , fYSamplerTransform(ySamplerTransform) , fUSampler(std::move(uSampler), uvSamplerParams) , fUSamplerTransform(uSamplerTransform) , fVSampler(std::move(vSampler), uvSamplerParams) , fVSamplerTransform(vSamplerTransform) , fColorSpaceMatrix(colorSpaceMatrix) , fNv12(nv12) , fYSamplerCoordTransform(ySamplerTransform, fYSampler.proxy()) , fUSamplerCoordTransform(uSamplerTransform, fUSampler.proxy()) , fVSamplerCoordTransform(vSamplerTransform, fVSampler.proxy()) { this->addTextureSampler(&fYSampler); this->addTextureSampler(&fUSampler); this->addTextureSampler(&fVSampler); this->addCoordTransform(&fYSamplerCoordTransform); this->addCoordTransform(&fUSamplerCoordTransform); this->addCoordTransform(&fVSamplerCoordTransform); } GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override; bool onIsEqual(const GrFragmentProcessor&) const override; GR_DECLARE_FRAGMENT_PROCESSOR_TEST TextureSampler fYSampler; SkMatrix44 fYSamplerTransform; TextureSampler fUSampler; SkMatrix44 fUSamplerTransform; TextureSampler fVSampler; SkMatrix44 fVSamplerTransform; SkMatrix44 fColorSpaceMatrix; bool fNv12; GrCoordTransform fYSamplerCoordTransform; GrCoordTransform fUSamplerCoordTransform; GrCoordTransform fVSamplerCoordTransform; typedef GrFragmentProcessor INHERITED; }; #endif #endif