Idiomatic way to display interactive image


I have tried searching these forums and have not found a good solution to this issue – but maybe I do not know the terminology well enough to form a good search query.

I would like to display a constantly updating image but it seems that most of the Image infrastructure in Iced only supports static images. In other (C++ based) toolkits, I would simply use GL, Vulkan, or DX to create a framebuffer object or texture, then have my application update this FBO every frame, render the texture to a full screen quad in the graphics API, and use the GUI toolkit to display the render results on a canvas widget.

The data I am generating is a complete rewrite of the image every frame. The data is generated on a GPU so it would be ideal to keep the data on the device, but I could also go through host memory. Desired updates is in the ballpark of 60/sec.

Any suggestions or pointers to documentation I have missed would be greatly appreciated.


Take a look at the widget::shader API. It should let you leverage wgpu to render any kind of graphical primitives you want.

We also have a custom_shader example, and a somewhat up-to-date RFC describing the feature.

Excellent. Thank you for the pointers

1 Like