Trait gsk4::prelude::GskRendererExt
source · pub trait GskRendererExt: 'static {
// Required methods
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
Trait containing all Renderer
methods.
Implementors
BroadwayRenderer
, CairoRenderer
, GLRenderer
, NglRenderer
, Renderer
Required Methods§
sourcefn surface(&self) -> Option<Surface>
fn surface(&self) -> Option<Surface>
Retrieves the gdk::Surface
set using gsk_enderer_realize().
If the renderer has not been realized yet, None
will be returned.
Returns
sourcefn is_realized(&self) -> bool
fn is_realized(&self) -> bool
sourcefn realize(&self, surface: Option<&Surface>) -> Result<(), Error>
fn realize(&self, surface: Option<&Surface>) -> Result<(), Error>
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
sourcefn render(&self, root: impl AsRef<RenderNode>, region: Option<&Region>)
fn render(&self, root: impl AsRef<RenderNode>, region: Option<&Region>)
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
region
the cairo::Region
that must be redrawn or None
for the whole window