blob: bc971aa0c154fa721549ec441e178d028b8d6845 [file] [log] [blame]
/*
* Copyright 2020 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 GrModulateAlphaEffect.fp; do not modify.
**************************************************************************************************/
#ifndef GrModulateAlphaEffect_DEFINED
#define GrModulateAlphaEffect_DEFINED
#include "include/core/SkM44.h"
#include "include/core/SkTypes.h"
#include "src/gpu/GrFragmentProcessor.h"
class GrModulateAlphaEffect : public GrFragmentProcessor {
public:
SkPMColor4f constantOutputForConstantInput(const SkPMColor4f& inColor) const override {
SkPMColor4f input = this->numChildProcessors()
? ConstantOutputForConstantInput(
this->childProcessor(inputFP_index), inColor)
: inColor;
return color * input.fA;
}
static std::unique_ptr<GrFragmentProcessor> Make(std::unique_ptr<GrFragmentProcessor> inputFP,
SkPMColor4f color) {
return std::unique_ptr<GrFragmentProcessor>(
new GrModulateAlphaEffect(std::move(inputFP), color));
}
GrModulateAlphaEffect(const GrModulateAlphaEffect& src);
std::unique_ptr<GrFragmentProcessor> clone() const override;
const char* name() const override { return "ModulateAlphaEffect"; }
int inputFP_index = -1;
SkPMColor4f color;
private:
GrModulateAlphaEffect(std::unique_ptr<GrFragmentProcessor> inputFP, SkPMColor4f color)
: INHERITED(kGrModulateAlphaEffect_ClassID,
(OptimizationFlags)(inputFP ? ProcessorOptimizationFlags(inputFP.get())
: kAll_OptimizationFlags) &
(kConstantOutputForConstantInput_OptimizationFlag |
kCompatibleWithCoverageAsAlpha_OptimizationFlag |
(color.isOpaque() ? kPreservesOpaqueInput_OptimizationFlag
: kNone_OptimizationFlags)))
, color(color) {
inputFP_index = this->registerChild(std::move(inputFP), SkSL::SampleUsage::PassThrough());
}
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
bool onIsEqual(const GrFragmentProcessor&) const override;
GR_DECLARE_FRAGMENT_PROCESSOR_TEST
typedef GrFragmentProcessor INHERITED;
};
#endif