[][src]Trait iced_graphics::window::GLCompositor

pub trait GLCompositor: Sized {
    type Renderer: Renderer;
    type Settings: Default;
    unsafe fn new(
        settings: Self::Settings,
        loader_function: impl FnMut(&str) -> *const c_void
    ) -> (Self, Self::Renderer);
fn sample_count(settings: &Self::Settings) -> u32;
fn resize_viewport(&mut self, physical_size: Size<u32>);
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; }

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!

Loading content...

Required methods

unsafe fn new(
    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

Draws the provided output with the given [Renderer].

Loading content...

Implementors

Loading content...