summaryrefslogtreecommitdiffstats
path: root/glow/src/window
diff options
context:
space:
mode:
Diffstat (limited to 'glow/src/window')
-rw-r--r--glow/src/window/compositor.rs32
1 files changed, 26 insertions, 6 deletions
diff --git a/glow/src/window/compositor.rs b/glow/src/window/compositor.rs
index 44019fb2..f6afaa68 100644
--- a/glow/src/window/compositor.rs
+++ b/glow/src/window/compositor.rs
@@ -1,18 +1,21 @@
use crate::{Backend, Color, Error, Renderer, Settings, Viewport};
-use core::ffi::c_void;
use glow::HasContext;
-use iced_graphics::{Antialiasing, Size};
+use iced_graphics::{compositor, Antialiasing, Size};
+
+use core::ffi::c_void;
+use std::marker::PhantomData;
/// A window graphics backend for iced powered by `glow`.
#[allow(missing_debug_implementations)]
-pub struct Compositor {
+pub struct Compositor<Theme> {
gl: glow::Context,
+ theme: PhantomData<Theme>,
}
-impl iced_graphics::window::GLCompositor for Compositor {
+impl<Theme> iced_graphics::window::GLCompositor for Compositor<Theme> {
type Settings = Settings;
- type Renderer = Renderer;
+ type Renderer = Renderer<Theme>;
unsafe fn new(
settings: Self::Settings,
@@ -20,6 +23,8 @@ impl iced_graphics::window::GLCompositor for Compositor {
) -> Result<(Self, Self::Renderer), Error> {
let gl = glow::Context::from_loader_function(loader_function);
+ log::info!("{:#?}", settings);
+
let version = gl.version();
log::info!("Version: {:?}", version);
log::info!("Embedded: {}", version.is_embedded);
@@ -44,7 +49,13 @@ impl iced_graphics::window::GLCompositor for Compositor {
let renderer = Renderer::new(Backend::new(&gl, settings));
- Ok((Self { gl }, renderer))
+ Ok((
+ Self {
+ gl,
+ theme: PhantomData,
+ },
+ renderer,
+ ))
}
fn sample_count(settings: &Settings) -> u32 {
@@ -65,6 +76,15 @@ impl iced_graphics::window::GLCompositor for Compositor {
}
}
+ fn fetch_information(&self) -> compositor::Information {
+ let adapter = unsafe { self.gl.get_parameter_string(glow::RENDERER) };
+
+ compositor::Information {
+ backend: format!("{:?}", self.gl.version()),
+ adapter,
+ }
+ }
+
fn present<T: AsRef<str>>(
&mut self,
renderer: &mut Self::Renderer,