#include "src/gpu/ganesh/GrXferProcessor.h"
#include "include/core/SkBlendMode.h"
#include "include/core/SkString.h"
#include "include/gpu/ganesh/GrTypes.h"
#include "src/gpu/KeyBuilder.h"
#include "src/gpu/ganesh/GrCaps.h"
#include "src/gpu/ganesh/GrShaderCaps.h"
#include "src/gpu/ganesh/effects/GrCustomXfermode.h"
#include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h"
#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h"
#include <cstdint>
enum class GrClampType;
GrXferProcessor::GrXferProcessor(ClassID classID)
: … { … }
GrXferProcessor::GrXferProcessor(ClassID classID, bool willReadDstColor,
GrProcessorAnalysisCoverage coverage)
: … { … }
bool GrXferProcessor::hasSecondaryOutput() const { … }
void GrXferProcessor::addToKey(const GrShaderCaps& caps,
skgpu::KeyBuilder* b,
const GrSurfaceOrigin* originIfDstTexture,
bool usesInputAttachmentForDstRead) const { … }
GrXPFactory::AnalysisProperties GrXPFactory::GetAnalysisProperties(
const GrXPFactory* factory,
const GrProcessorAnalysisColor& color,
const GrProcessorAnalysisCoverage& coverage,
const GrCaps& caps,
GrClampType clampType) { … }
sk_sp<const GrXferProcessor> GrXPFactory::MakeXferProcessor(const GrXPFactory* factory,
const GrProcessorAnalysisColor& color,
GrProcessorAnalysisCoverage coverage,
const GrCaps& caps,
GrClampType clampType) { … }
const GrXPFactory* GrXPFactory::FromBlendMode(SkBlendMode mode) { … }
ProgramImpl;
static void adjust_for_lcd_coverage(GrGLSLXPFragmentBuilder* fragBuilder,
const char* srcCoverage,
const GrXferProcessor& proc) { … }
void ProgramImpl::emitCode(const EmitArgs& args) { … }
void ProgramImpl::emitWriteSwizzle(GrGLSLXPFragmentBuilder* x,
const skgpu::Swizzle& swizzle,
const char* outColor,
const char* outColorSecondary) const { … }
void ProgramImpl::setData(const GrGLSLProgramDataManager& pdm, const GrXferProcessor& xp) { … }
void ProgramImpl::DefaultCoverageModulation(GrGLSLXPFragmentBuilder* fragBuilder,
const char* srcCoverage,
const char* dstColor,
const char* outColor,
const char* outColorSecondary,
const GrXferProcessor& proc) { … }