[−][src]Trait iced_graphics::window::GLCompositor
A basic OpenGL compositor.
A compositor is responsible for initializing a renderer and managing window surfaces.
For now, this compositor only deals with a single global surface for drawing. However, the trait will most likely change in the near future to handle multiple surfaces at once.
If you implement an OpenGL renderer, you can implement this trait to ease
integration with existing windowing shells, like iced_glutin
.
Associated Types
type Renderer: Renderer
The renderer of the Compositor
.
This should point to your renderer type, which could be a type alias
of the Renderer
provided in this crate with with a specific
Backend
.
type Settings: Default
The settings of the [Compositor
].
It's up to you to decide the configuration supported by your renderer!
Required methods
unsafe fn new(
settings: Self::Settings,
loader_function: impl FnMut(&str) -> *const c_void
) -> (Self, Self::Renderer)
settings: Self::Settings,
loader_function: impl FnMut(&str) -> *const c_void
) -> (Self, Self::Renderer)
Creates a new Compositor
and Renderer
with the given
[Settings
] and an OpenGL address loader function.
fn sample_count(settings: &Self::Settings) -> u32
Returns the amount of samples that should be used when configuring
an OpenGL context for this Compositor
.
fn resize_viewport(&mut self, physical_size: Size<u32>)
Resizes the viewport of the Compositor
.
fn draw<T: AsRef<str>>(
&mut self,
renderer: &mut Self::Renderer,
viewport: &Viewport,
background_color: Color,
output: &<Self::Renderer as Renderer>::Output,
overlay: &[T]
) -> Interaction
&mut self,
renderer: &mut Self::Renderer,
viewport: &Viewport,
background_color: Color,
output: &<Self::Renderer as Renderer>::Output,
overlay: &[T]
) -> Interaction
Draws the provided output with the given [Renderer
].