Update frameworks/base to use newer SkRuntimeEffect::MakeForShader
This enforces stricter rules on the SkSL at effect creation time, and
ensures it's valid as an SkShader (vs. an SkColorFilter). Also updated
some SkSL that was already (or would become) illegal:
- Child shaders must be declared 'uniform', not 'in'
- sampling a child requires coordinates
Bug: skia:11813
Change-Id: I743b985b5012723186a43e58e9e3ccf29d809d2b
diff --git a/libs/hwui/effects/StretchEffect.cpp b/libs/hwui/effects/StretchEffect.cpp
index c2642d3..6eb6e1e 100644
--- a/libs/hwui/effects/StretchEffect.cpp
+++ b/libs/hwui/effects/StretchEffect.cpp
@@ -237,7 +237,7 @@
}
sk_sp<SkRuntimeEffect> StretchEffect::getStretchEffect() {
- const static SkRuntimeEffect::Result instance = SkRuntimeEffect::Make(stretchShader);
+ const static SkRuntimeEffect::Result instance = SkRuntimeEffect::MakeForShader(stretchShader);
return instance.effect;
}
diff --git a/libs/hwui/jni/Shader.cpp b/libs/hwui/jni/Shader.cpp
index 2e4d7f62..9018443 100644
--- a/libs/hwui/jni/Shader.cpp
+++ b/libs/hwui/jni/Shader.cpp
@@ -239,7 +239,8 @@
static jlong RuntimeShader_createShaderBuilder(JNIEnv* env, jobject, jstring sksl) {
ScopedUtfChars strSksl(env, sksl);
- auto result = SkRuntimeEffect::Make(SkString(strSksl.c_str()), SkRuntimeEffect::Options{});
+ auto result = SkRuntimeEffect::MakeForShader(SkString(strSksl.c_str()),
+ SkRuntimeEffect::Options{});
if (result.effect.get() == nullptr) {
doThrowIAE(env, result.errorText.c_str());
return 0;