1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/* 2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2018 Google Inc. 3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * 4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be 5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file. 6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */ 7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/************************************************************************************************** 9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *** This file was autogenerated from GrUnpremulInputFragmentProcessor.fp; do not modify. 10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot **************************************************************************************************/ 11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "GrUnpremulInputFragmentProcessor.h" 12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#if SK_SUPPORT_GPU 13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "glsl/GrGLSLFragmentProcessor.h" 14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "glsl/GrGLSLFragmentShaderBuilder.h" 15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "glsl/GrGLSLProgramBuilder.h" 16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "GrTexture.h" 17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkSLCPP.h" 18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkSLUtil.h" 19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass GrGLSLUnpremulInputFragmentProcessor : public GrGLSLFragmentProcessor { 20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic: 21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrGLSLUnpremulInputFragmentProcessor() {} 22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot void emitCode(EmitArgs& args) override { 23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; 24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const GrUnpremulInputFragmentProcessor& _outer = 25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot args.fFp.cast<GrUnpremulInputFragmentProcessor>(); 26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot (void)_outer; 27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot fragBuilder->codeAppendf( 28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot "%s = %s;\nhalf invAlpha = %s.w <= 0.0 ? 0.0 : 1.0 / %s.w;\n%s.xyz *= invAlpha;\n", 29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot args.fOutputColor, args.fInputColor ? args.fInputColor : "half4(1)", 30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot args.fInputColor ? args.fInputColor : "half4(1)", 31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot args.fInputColor ? args.fInputColor : "half4(1)", args.fOutputColor); 32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot } 33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate: 35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot void onSetData(const GrGLSLProgramDataManager& pdman, 36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const GrFragmentProcessor& _proc) override {} 37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}; 38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team RobotGrGLSLFragmentProcessor* GrUnpremulInputFragmentProcessor::onCreateGLSLInstance() const { 39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot return new GrGLSLUnpremulInputFragmentProcessor(); 40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot} 41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotvoid GrUnpremulInputFragmentProcessor::onGetGLSLProcessorKey(const GrShaderCaps& caps, 42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrProcessorKeyBuilder* b) const {} 43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotbool GrUnpremulInputFragmentProcessor::onIsEqual(const GrFragmentProcessor& other) const { 44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const GrUnpremulInputFragmentProcessor& that = other.cast<GrUnpremulInputFragmentProcessor>(); 45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot (void)that; 46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot return true; 47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot} 48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team RobotGrUnpremulInputFragmentProcessor::GrUnpremulInputFragmentProcessor( 49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const GrUnpremulInputFragmentProcessor& src) 50fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot : INHERITED(kGrUnpremulInputFragmentProcessor_ClassID, src.optimizationFlags()) {} 51fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstd::unique_ptr<GrFragmentProcessor> GrUnpremulInputFragmentProcessor::clone() const { 52fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot return std::unique_ptr<GrFragmentProcessor>(new GrUnpremulInputFragmentProcessor(*this)); 53fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot} 54fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif 55