Skip to content

[FEATURE] Expose SkImageFilters::RuntimeShader() #2373

Description

@RedyG

I want to use SKCanvas.SaveLayer(), and then apply a shader ( or a tree of shaders ) to the content of that layer on SKCanvas.Restore(). I found out about SkImageFilters::RuntimeShader() but it seems like it's not yet exposed in SkiaSharp.

The code would look something like:

var effect = SKRuntimeEffect.Create("...", out string errors);
SKShader shader = effect.ToShader(false);
var imageFilter = SKImageFilter.CreateShader(shader, ...);
var paint = new SKPaint
{
    ImageFilter = imageFilter
};

canvas.SaveLayer(paint);
// draw stuff
canvas.Restore();

I would like the API the expose a SKImageFilter.CreateShader() or SKImageFilter.CreateRuntimeShader() method

Mentioned here

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions