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 realize_for_display(&self, display: &Display) -> 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.
Since GTK 4.14, it is recommended to use realize_for_display()
instead.
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 realize_for_display(&self, display: &Display) -> Result<(), Error>
Available on crate feature v4_14
only.
fn realize_for_display(&self, display: &Display) -> Result<(), Error>
v4_14
only.Creates the resources needed by the @self to render the scene graph.
Note that it is mandatory to call unrealize()
before
destroying the renderer.
§display
the gdk::Display
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.
fn connect_realized_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_surface_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.