Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 165b68e

Browse files
reed-at-googleSkia Commit-Bot
authored andcommitted
Add onProgram to ModeColorFilter
Change-Id: Id82cfc632f378054f5ecded2c5a77d2824982288 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278420 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
1 parent cb1a2df commit 165b68e

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/core/SkModeColorFilter.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "src/core/SkModeColorFilter.h"
1818
#include "src/core/SkRasterPipeline.h"
1919
#include "src/core/SkReadBuffer.h"
20+
#include "src/core/SkVM.h"
2021
#include "src/core/SkValidationUtils.h"
2122
#include "src/core/SkWriteBuffer.h"
2223

@@ -70,6 +71,15 @@ bool SkModeColorFilter::onAppendStages(const SkStageRec& rec, bool shaderIsOpaqu
7071
return true;
7172
}
7273

74+
skvm::Color SkModeColorFilter::onProgram(skvm::Builder* p, skvm::Color c,
75+
SkColorSpace* dstCS,
76+
skvm::Uniforms* uniforms, SkArenaAlloc*) const {
77+
skvm::Color dst = c,
78+
src = p->uniformPremul(SkColor4f::FromColor(fColor), sk_srgb_singleton(),
79+
uniforms, dstCS);
80+
return p->blend(fMode, src,dst);
81+
}
82+
7383
///////////////////////////////////////////////////////////////////////////////
7484
#if SK_SUPPORT_GPU
7585
#include "src/gpu/GrBlend.h"

src/core/SkModeColorFilter.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class SkModeColorFilter : public SkColorFilter {
3131
bool onAsAColorMode(SkColor*, SkBlendMode*) const override;
3232

3333
bool onAppendStages(const SkStageRec& rec, bool shaderIsOpaque) const override;
34+
skvm::Color onProgram(skvm::Builder*, skvm::Color,
35+
SkColorSpace*, skvm::Uniforms*, SkArenaAlloc*) const override;
3436

3537
private:
3638
SK_FLATTENABLE_HOOKS(SkModeColorFilter)

0 commit comments

Comments
 (0)