Trait gsk4::prelude::GskRendererExt
source · pub trait GskRendererExt: IsA<Renderer> + Sealed + 'static {
// Provided 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
, VulkanRenderer
Provided 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
sourcefn render_texture(
&self,
root: impl AsRef<RenderNode>,
viewport: Option<&Rect>
) -> Texture
fn render_texture( &self, root: impl AsRef<RenderNode>, viewport: Option<&Rect> ) -> Texture
Renders the scene graph, described by a tree of RenderNode
instances,
to a gdk::Texture
.
The @self will acquire a reference on the RenderNode
tree while
the rendering is in progress.
If you want to apply any transformations to @root, you should put it into a transform node and pass that node instead.
root
viewport
the section to draw or None
to use @root’s bounds
Returns
a gdk::Texture
with the rendered contents of @root.