pub trait GLCompositor: Sized {
    type Renderer: Renderer;
    type Settings: Default;

    // Required methods
    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§

source

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.

source

type Settings: Default

The settings of the GLCompositor.

It’s up to you to decide the configuration supported by your renderer!

Required Methods§

source

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.

source

fn sample_count(settings: &Self::Settings) -> u32

Returns the amount of samples that should be used when configuring an OpenGL context for this GLCompositor.

source

fn resize_viewport(&mut self, physical_size: Size<u32>)

Resizes the viewport of the GLCompositor.

source

fn fetch_information(&self) -> Information

Returns Information used by this GLCompositor.

source

fn present<T: AsRef<str>>( &mut self, renderer: &mut Self::Renderer, viewport: &Viewport, background_color: Color, overlay: &[T] )

Presents the primitives of the Renderer to the next frame of the GLCompositor.

Implementors§