Trait iced_graphics::window::gl_compositor::GLCompositor
source · pub trait GLCompositor: Sized {
type Renderer: Renderer;
type Settings: Default;
unsafe fn new(
settings: Self::Settings,
loader_function: impl FnMut(&str) -> *const c_void
) -> Result<(Self, Self::Renderer), Error>;
fn sample_count(settings: &Self::Settings) -> u32;
fn resize_viewport(&mut self, physical_size: Size<u32>);
fn fetch_information(&self) -> Information;
fn present<T: AsRef<str>>(
&mut self,
renderer: &mut Self::Renderer,
viewport: &Viewport,
background_color: Color,
overlay: &[T]
);
}
Expand description
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
.
Required Associated Types§
sourcetype Renderer: Renderer
type Renderer: Renderer
The renderer of the GLCompositor
.
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
.
sourcetype Settings: Default
type Settings: Default
The settings of the GLCompositor
.
It’s up to you to decide the configuration supported by your renderer!
Required Methods§
sourceunsafe fn new(
settings: Self::Settings,
loader_function: impl FnMut(&str) -> *const c_void
) -> Result<(Self, Self::Renderer), Error>
unsafe fn new(
settings: Self::Settings,
loader_function: impl FnMut(&str) -> *const c_void
) -> Result<(Self, Self::Renderer), Error>
Creates a new GLCompositor
and Renderer
with the given
Settings
and an OpenGL address loader function.
Safety
The loader_function
should resolve to valid OpenGL bindings.
sourcefn sample_count(settings: &Self::Settings) -> u32
fn sample_count(settings: &Self::Settings) -> u32
Returns the amount of samples that should be used when configuring
an OpenGL context for this GLCompositor
.
sourcefn resize_viewport(&mut self, physical_size: Size<u32>)
fn resize_viewport(&mut self, physical_size: Size<u32>)
Resizes the viewport of the GLCompositor
.
sourcefn fetch_information(&self) -> Information
fn fetch_information(&self) -> Information
Returns Information
used by this GLCompositor
.