diff options
author | 2020-05-21 00:37:47 +0200 | |
---|---|---|
committer | 2020-05-21 00:44:35 +0200 | |
commit | e0e4ee73feead3f05730625c7e1917b63f0b384e (patch) | |
tree | 5cd934cc474a5aacc60359f6fe69a5b9d31fe45b /graphics/src/window | |
parent | a1a5fcfd46622d5b18d1716aa2adb4659835ccf3 (diff) | |
download | iced-e0e4ee73feead3f05730625c7e1917b63f0b384e.tar.gz iced-e0e4ee73feead3f05730625c7e1917b63f0b384e.tar.bz2 iced-e0e4ee73feead3f05730625c7e1917b63f0b384e.zip |
Implement `iced_glutin` :tada:
Diffstat (limited to 'graphics/src/window')
-rw-r--r-- | graphics/src/window/gl_compositor.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/graphics/src/window/gl_compositor.rs b/graphics/src/window/gl_compositor.rs new file mode 100644 index 00000000..979d891e --- /dev/null +++ b/graphics/src/window/gl_compositor.rs @@ -0,0 +1,24 @@ +use crate::{Size, Viewport}; +use iced_native::mouse; + +use core::ffi::c_void; + +pub trait GLCompositor: Sized { + type Renderer: iced_native::Renderer; + type Settings: Default; + + unsafe fn new( + settings: Self::Settings, + loader_function: impl FnMut(&str) -> *const c_void, + ) -> (Self, Self::Renderer); + + fn resize_viewport(&mut self, physical_size: Size<u32>); + + fn draw<T: AsRef<str>>( + &mut self, + renderer: &mut Self::Renderer, + viewport: &Viewport, + output: &<Self::Renderer as iced_native::Renderer>::Output, + overlay: &[T], + ) -> mouse::Interaction; +} |