Initial framework needed to draw circle with RuntimeShader.
This also adds the ability for RenderThread to animate a few
predefined shader uniforms.
Bug: 177051137
Test: demo in ag/13296877
Change-Id: I6e58e671ad1242a07ecb1cf4cdb48031f85c2088
diff --git a/libs/hwui/SkiaCanvas.cpp b/libs/hwui/SkiaCanvas.cpp
index acb74f4..815ffde 100644
--- a/libs/hwui/SkiaCanvas.cpp
+++ b/libs/hwui/SkiaCanvas.cpp
@@ -814,6 +814,18 @@
mCanvas->drawDrawable(drawable.get());
}
+void SkiaCanvas::drawRipple(uirenderer::CanvasPropertyPrimitive* x,
+ uirenderer::CanvasPropertyPrimitive* y,
+ uirenderer::CanvasPropertyPrimitive* radius,
+ uirenderer::CanvasPropertyPaint* paint,
+ uirenderer::CanvasPropertyPrimitive* progress,
+ sk_sp<SkRuntimeEffect> runtimeEffect) {
+ sk_sp<uirenderer::skiapipeline::AnimatedRipple> drawable(
+ new uirenderer::skiapipeline::AnimatedRipple(x, y, radius, paint, progress,
+ runtimeEffect));
+ mCanvas->drawDrawable(drawable.get());
+}
+
void SkiaCanvas::drawPicture(const SkPicture& picture) {
// TODO: Change to mCanvas->drawPicture()? SkCanvas::drawPicture seems to be
// where the logic is for playback vs. ref picture. Using picture.playback here