Lines Matching defs:const
53 BlendFormula(const BlendFormula&) = default;
54 BlendFormula& operator=(const BlendFormula&) = default;
56 bool operator==(const BlendFormula& that) const {
65 bool hasSecondaryOutput() const {
68 bool modifiesDst() const {
71 bool unaffectedByDst() const {
76 bool unaffectedByDstIfOpaque() const {
79 bool usesInputColor() const {
82 bool canTweakAlphaForCoverage() const {
86 GrBlendEquation equation() const {
90 GrBlendCoeff srcCoeff() const {
94 GrBlendCoeff dstCoeff() const {
98 OutputType primaryOutput() const {
102 OutputType secondaryOutput() const {
381 const char* name() const override { return "Porter Duff"; }
383 SkString getShaderDfxInfo() const override;
385 std::unique_ptr<ProgramImpl> makeProgramImpl() const override;
387 BlendFormula getBlendFormula() const { return fBlendFormula; }
390 void onAddToKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
392 bool onHasSecondaryOutput() const override { return fBlendFormula.hasSecondaryOutput(); }
394 void onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const override {
401 bool onIsEqual(const GrXferProcessor& xpBase) const override {
402 const PorterDuffXferProcessor& xp = xpBase.cast<PorterDuffXferProcessor>();
406 const BlendFormula fBlendFormula;
413 static void append_color_output(const PorterDuffXferProcessor& xp,
415 BlendFormula::OutputType outputType, const char* output,
416 const char* inColor, const char* inCoverage) {
444 SkString PorterDuffXferProcessor::getShaderDfxInfo() const
451 void PorterDuffXferProcessor::onAddToKey(const GrShaderCaps&, GrProcessorKeyBuilder* b) const {
456 std::unique_ptr<GrXferProcessor::ProgramImpl> PorterDuffXferProcessor::makeProgramImpl() const {
459 void emitOutputsForBlendState(const EmitArgs& args) override {
460 const PorterDuffXferProcessor& xp = args.fXP.cast<PorterDuffXferProcessor>();
463 const BlendFormula& blendFormula = xp.fBlendFormula;
493 const char* name() const override { return "Porter Duff Shader"; }
495 SkString getShaderDfxInfo() const override;
497 std::unique_ptr<ProgramImpl> makeProgramImpl() const override;
500 void onAddToKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
502 bool onIsEqual(const GrXferProcessor& xpBase) const override {
503 const ShaderPDXferProcessor& xp = xpBase.cast<ShaderPDXferProcessor>();
507 const SkBlendMode fXfermode;
514 SkString ShaderPDXferProcessor::getShaderDfxInfo() const
521 void ShaderPDXferProcessor::onAddToKey(const GrShaderCaps&, GrProcessorKeyBuilder* b) const {
525 std::unique_ptr<GrXferProcessor::ProgramImpl> ShaderPDXferProcessor::makeProgramImpl() const {
530 const char* srcColor,
531 const char* srcCoverage,
532 const char* dstColor,
533 const char* outColor,
534 const char* outColorSecondary,
535 const GrXferProcessor& proc) override {
536 const ShaderPDXferProcessor& xp = proc.cast<ShaderPDXferProcessor>();
557 static sk_sp<const GrXferProcessor> Make(SkBlendMode mode,
558 const GrProcessorAnalysisColor& inputColor);
560 const char* name() const override { return "Porter Duff LCD"; }
562 SkString getShaderDfxInfo() const override { return SkString("ShaderDfx_PDLCDXfer"); }
564 std::unique_ptr<ProgramImpl> makeProgramImpl() const override;
567 PDLCDXferProcessor(const SkPMColor4f& blendConstant, float alpha);
569 void onAddToKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override {}
571 void onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const override {
577 bool onIsEqual(const GrXferProcessor& xpBase) const override {
578 const PDLCDXferProcessor& xp = xpBase.cast<PDLCDXferProcessor>();
591 PDLCDXferProcessor::PDLCDXferProcessor(const SkPMColor4f& blendConstant, float alpha)
598 sk_sp<const GrXferProcessor> PDLCDXferProcessor::Make(SkBlendMode mode,
599 const GrProcessorAnalysisColor& color) {
613 std::unique_ptr<GrXferProcessor::ProgramImpl> PDLCDXferProcessor::makeProgramImpl() const {
616 void emitOutputsForBlendState(const EmitArgs& args) override {
617 const char* alpha;
634 void onSetData(const GrGLSLProgramDataManager& pdm, const GrXferProcessor& xp) override {
654 const GrXPFactory* GrPorterDuffXPFactory::Get(SkBlendMode blendMode) {
657 static constexpr const GrPorterDuffXPFactory gClearPDXPF(SkBlendMode::kClear);
658 static constexpr const GrPorterDuffXPFactory gSrcPDXPF(SkBlendMode::kSrc);
659 static constexpr const GrPorterDuffXPFactory gDstPDXPF(SkBlendMode::kDst);
660 static constexpr const GrPorterDuffXPFactory gSrcOverPDXPF(SkBlendMode::kSrcOver);
661 static constexpr const GrPorterDuffXPFactory gDstOverPDXPF(SkBlendMode::kDstOver);
662 static constexpr const GrPorterDuffXPFactory gSrcInPDXPF(SkBlendMode::kSrcIn);
663 static constexpr const GrPorterDuffXPFactory gDstInPDXPF(SkBlendMode::kDstIn);
664 static constexpr const GrPorterDuffXPFactory gSrcOutPDXPF(SkBlendMode::kSrcOut);
665 static constexpr const GrPorterDuffXPFactory gDstOutPDXPF(SkBlendMode::kDstOut);
666 static constexpr const GrPorterDuffXPFactory gSrcATopPDXPF(SkBlendMode::kSrcATop);
667 static constexpr const GrPorterDuffXPFactory gDstATopPDXPF(SkBlendMode::kDstATop);
668 static constexpr const GrPorterDuffXPFactory gXorPDXPF(SkBlendMode::kXor);
669 static constexpr const GrPorterDuffXPFactory gPlusPDXPF(SkBlendMode::kPlus);
670 static constexpr const GrPorterDuffXPFactory gModulatePDXPF(SkBlendMode::kModulate);
671 static constexpr const GrPorterDuffXPFactory gScreenPDXPF(SkBlendMode::kScreen);
709 sk_sp<const GrXferProcessor> GrPorterDuffXPFactory::makeXferProcessor(
710 const GrProcessorAnalysisColor& color, GrProcessorAnalysisCoverage coverage,
711 const GrCaps& caps, GrClampType clampType) const {
741 return sk_sp<const GrXferProcessor>(new ShaderPDXferProcessor(fBlendMode, coverage));
743 return sk_sp<const GrXferProcessor>(new PorterDuffXferProcessor(blendFormula, coverage));
747 const GrProcessorAnalysisColor& color, const GrProcessorAnalysisCoverage& coverage,
748 const GrCaps& caps, GrClampType clampType, SkBlendMode mode) {
806 const GrProcessorAnalysisColor& color,
807 const GrProcessorAnalysisCoverage& coverage,
808 const GrCaps& caps,
809 GrClampType clampType) const {
816 const GrXPFactory* GrPorterDuffXPFactory::TestGet(GrProcessorTestData* d) {
822 void GrPorterDuffXPFactory::TestGetXPOutputTypes(const GrXferProcessor* xp,
829 BlendFormula blendFormula = static_cast<const PorterDuffXferProcessor*>(xp)->getBlendFormula();
837 const GrXferProcessor& GrPorterDuffXPFactory::SimpleSrcOverXP() {
845 sk_sp<const GrXferProcessor> GrPorterDuffXPFactory::MakeSrcOverXferProcessor(
846 const GrProcessorAnalysisColor& color, GrProcessorAnalysisCoverage coverage,
847 const GrCaps& caps) {
892 sk_sp<const GrXferProcessor> GrPorterDuffXPFactory::MakeNoCoverageXP(SkBlendMode blendmode) {
898 const GrProcessorAnalysisColor& color,
899 const GrProcessorAnalysisCoverage& coverage,
900 const GrCaps& caps,