pub trait GskRendererExt: 'static {
    fn surface(&self) -> Option<Surface>;
    fn is_realized(&self) -> bool;
    fn realize(&self, surface: Option<&Surface>) -> Result<(), Error>;
    fn render(&self, root: impl AsRef<RenderNode>, region: Option<&Region>);
    fn render_texture(
        &self,
        root: impl AsRef<RenderNode>,
        viewport: Option<&Rect>
    ) -> Texture; fn unrealize(&self); fn connect_realized_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; fn connect_surface_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; }
Expand description

Required Methods§

Retrieves the gdk::Surface set using gsk_enderer_realize().

If the renderer has not been realized yet, None will be returned.

Returns

a gdk::Surface

Checks whether the @self is realized or not.

Returns

true if the Renderer was realized, and false otherwise

Creates the resources needed by the @self to render the scene graph.

Since GTK 4.6, the surface may be NULL, which allows using renderers without having to create a surface.

Note that it is mandatory to call unrealize() before destroying the renderer.

surface

the gdk::Surface renderer will be used on

Returns

Whether the renderer was successfully realized

Renders the scene graph, described by a tree of RenderNode instances to the renderer’s surface, ensuring that the given @region gets redrawn.

If the renderer has no associated surface, this function does nothing.

Renderers must ensure that changes of the contents given by the @root node as well as the area given by @region are redrawn. They are however free to not redraw any pixel outside of @region if they can guarantee that it didn’t change.

The @self will acquire a reference on the RenderNode tree while the rendering is in progress.

root

a RenderNode

region

the cairo::Region that must be redrawn or None for the whole window

Implementors§