Skip to content

Feature request for FragmentShader.setImageSampler to support Texture #136025

@Razenpok

Description

@Razenpok

Is there an existing issue for this?

Use case

I have an external texture that I want to render using FragmentShader. I see that FragmentShader.setImageSampler accepts Image only, and there's no way to pass Texture sampler.

I don't have a workaround for now, but I'm considering using decodeImageFromPixels instead of working with Texture directly.

Proposal

Future<FragmentShader> loadShader() async {
  var textureId = await _createExternalTexture();
  var texture = Texture(textureId: textureId);

  var program = await FragmentProgram.fromAsset('shaders/myshader.frag');
  var shader = program.fragmentShader();
  shader.setImageSampler(0, texture);

  return shader;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: new featureNothing broken; request for a new capabilityc: proposalA detailed proposal for a change to Flutterengineflutter/engine related. See also e: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions