thread alloc through to color filters
Change-Id: I783c32d92fac8c78e26f15a8e9bb6f43395d1d3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/268648
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/include/core/SkColorFilter.h b/include/core/SkColorFilter.h
index 18af9a4..16b6ee9 100644
--- a/include/core/SkColorFilter.h
+++ b/include/core/SkColorFilter.h
@@ -16,6 +16,7 @@
class GrColorInfo;
class GrFragmentProcessor;
class GrRecordingContext;
+class SkArenaAlloc;
class SkBitmap;
class SkColorMatrix;
class SkColorSpace;
@@ -63,7 +64,7 @@
bool program(skvm::Builder*,
SkColorSpace* dstCS,
- skvm::Uniforms* uniforms,
+ skvm::Uniforms* uniforms, SkArenaAlloc* alloc,
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const;
enum Flags {
@@ -150,7 +151,7 @@
virtual bool onProgram(skvm::Builder*,
SkColorSpace* dstCS,
- skvm::Uniforms* uniforms,
+ skvm::Uniforms* uniforms, SkArenaAlloc* alloc,
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const;
friend class SkComposeColorFilter;
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index dfd34d2..0cb50ce 100644
--- a/src/core/SkColorFilter.cpp
+++ b/src/core/SkColorFilter.cpp
@@ -47,10 +47,10 @@
bool SkColorFilter::program(skvm::Builder* p,
SkColorSpace* dstCS,
- skvm::Uniforms* uniforms,
+ skvm::Uniforms* uniforms, SkArenaAlloc* alloc,
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const {
skvm::F32 original = *a;
- if (this->onProgram(p, dstCS, uniforms, r,g,b,a)) {
+ if (this->onProgram(p, dstCS, uniforms,alloc, r,g,b,a)) {
if (this->getFlags() & kAlphaUnchanged_Flag) {
*a = original;
}
@@ -61,7 +61,7 @@
bool SkColorFilter::onProgram(skvm::Builder*,
SkColorSpace* dstCS,
- skvm::Uniforms* uniforms,
+ skvm::Uniforms* uniforms, SkArenaAlloc*,
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const {
return false;
}
diff --git a/src/core/SkColorFilter_Matrix.cpp b/src/core/SkColorFilter_Matrix.cpp
index 6411bee..8d2c7df 100644
--- a/src/core/SkColorFilter_Matrix.cpp
+++ b/src/core/SkColorFilter_Matrix.cpp
@@ -82,7 +82,7 @@
bool SkColorFilter_Matrix::onProgram(skvm::Builder* p,
SkColorSpace* /*dstCS*/,
- skvm::Uniforms* uniforms,
+ skvm::Uniforms* uniforms, SkArenaAlloc*,
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const {
// TODO: specialize generated code on the 0/1 values of fMatrix?
if (fDomain == Domain::kRGBA) {
diff --git a/src/core/SkColorFilter_Matrix.h b/src/core/SkColorFilter_Matrix.h
index 87a3095..cdbf63e 100644
--- a/src/core/SkColorFilter_Matrix.h
+++ b/src/core/SkColorFilter_Matrix.h
@@ -35,7 +35,7 @@
bool onAppendStages(const SkStageRec& rec, bool shaderIsOpaque) const override;
bool onProgram(skvm::Builder*,
SkColorSpace* dstCS,
- skvm::Uniforms* uniforms,
+ skvm::Uniforms* uniforms, SkArenaAlloc*,
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const override;
float fMatrix[20];
diff --git a/src/core/SkVMBlitter.cpp b/src/core/SkVMBlitter.cpp
index 8abef95..3929ed2 100644
--- a/src/core/SkVMBlitter.cpp
+++ b/src/core/SkVMBlitter.cpp
@@ -386,7 +386,7 @@
struct NoopColorFilter : public SkColorFilter {
bool onProgram(skvm::Builder*,
SkColorSpace*,
- skvm::Uniforms*,
+ skvm::Uniforms*, SkArenaAlloc*,
skvm::F32*, skvm::F32*, skvm::F32*, skvm::F32*) const override {
return true;
}
diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp
index 431c751..9921971 100644
--- a/src/effects/SkTableColorFilter.cpp
+++ b/src/effects/SkTableColorFilter.cpp
@@ -123,7 +123,7 @@
return true;
}
- bool onProgram(skvm::Builder* p, SkColorSpace* dstCS, skvm::Uniforms* uniforms,
+ bool onProgram(skvm::Builder* p, SkColorSpace* dstCS, skvm::Uniforms* uniforms, SkArenaAlloc*,
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const override {
auto apply_table_to_component = [&](skvm::F32 c, const uint8_t* bytePtr) -> skvm::F32 {
diff --git a/src/shaders/SkColorFilterShader.cpp b/src/shaders/SkColorFilterShader.cpp
index 092848a..7ab0ff4 100644
--- a/src/shaders/SkColorFilterShader.cpp
+++ b/src/shaders/SkColorFilterShader.cpp
@@ -82,7 +82,7 @@
}
// Finally run that through the color filter.
- if (!fFilter->program(p, dstCS, uniforms, r,g,b,a)) {
+ if (!fFilter->program(p, dstCS, uniforms,alloc, r,g,b,a)) {
return false;
}