diff options
Diffstat (limited to 'libs/hwui/pipeline/skia/AnimatedDrawables.h')
-rw-r--r-- | libs/hwui/pipeline/skia/AnimatedDrawables.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libs/hwui/pipeline/skia/AnimatedDrawables.h b/libs/hwui/pipeline/skia/AnimatedDrawables.h index 10889e7a9229..d173782fd880 100644 --- a/libs/hwui/pipeline/skia/AnimatedDrawables.h +++ b/libs/hwui/pipeline/skia/AnimatedDrawables.h @@ -77,6 +77,7 @@ public: setUniform(effectBuilder, "in_radius", params.radius); setUniform(effectBuilder, "in_progress", params.progress); setUniform(effectBuilder, "in_turbulencePhase", params.turbulencePhase); + setUniform(effectBuilder, "in_noisePhase", params.turbulencePhase->value * 0.001); SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform("in_color"); if (uniform.fVar != nullptr) { @@ -120,17 +121,24 @@ private: static constexpr float PI_ROTATE_LEFT = PI * -0.0078125; static constexpr float SCALE = 1.5; - static void setUniform(SkRuntimeShaderBuilder& effectBuilder, std::string name, + static void setUniform(SkRuntimeShaderBuilder& effectBuilder, const char* name, sp<uirenderer::CanvasPropertyPrimitive> property) { - SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform(name.c_str()); + SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform(name); if (uniform.fVar != nullptr) { uniform = property->value; } } - static void setUniform2f(SkRuntimeShaderBuilder& effectBuilder, std::string name, float a, + static void setUniform(SkRuntimeShaderBuilder& effectBuilder, const char* name, float value) { + SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform(name); + if (uniform.fVar != nullptr) { + uniform = value; + } + } + + static void setUniform2f(SkRuntimeShaderBuilder& effectBuilder, const char* name, float a, float b) { - SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform(name.c_str()); + SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform(name); if (uniform.fVar != nullptr) { uniform = SkV2{a, b}; } |