Add logging to window and context creation

This commit is contained in:
Richard 2022-01-27 06:02:19 -03:00
parent 1e62fdf069
commit 764b424dfc
5 changed files with 38 additions and 9 deletions

View file

@ -20,6 +20,8 @@ impl iced_graphics::window::GLCompositor for Compositor {
) -> Result<(Self, Self::Renderer), Error> { ) -> Result<(Self, Self::Renderer), Error> {
let gl = glow::Context::from_loader_function(loader_function); let gl = glow::Context::from_loader_function(loader_function);
log::info!("{:#?}", settings);
let version = gl.version(); let version = gl.version();
log::info!("Version: {:?}", version); log::info!("Version: {:?}", version);
log::info!("Embedded: {}", version.is_embedded); log::info!("Embedded: {}", version.is_embedded);

View file

@ -13,6 +13,9 @@ categories = ["gui"]
[features] [features]
debug = ["iced_winit/debug"] debug = ["iced_winit/debug"]
[dependencies.log]
version = "0.4"
[dependencies.glutin] [dependencies.glutin]
version = "0.28" version = "0.28"
git = "https://github.com/iced-rs/glutin" git = "https://github.com/iced-rs/glutin"

View file

@ -61,6 +61,8 @@ where
settings.id, settings.id,
); );
log::info!("Window builder: {:#?}", builder);
let opengl_builder = ContextBuilder::new() let opengl_builder = ContextBuilder::new()
.with_vsync(true) .with_vsync(true)
.with_multisampling(C::sample_count(&compositor_settings) as u16); .with_multisampling(C::sample_count(&compositor_settings) as u16);
@ -75,9 +77,14 @@ where
(opengl_builder, opengles_builder) (opengl_builder, opengles_builder)
}; };
log::info!("Trying first builder: {:#?}", first_builder);
let context = first_builder let context = first_builder
.build_windowed(builder.clone(), &event_loop) .build_windowed(builder.clone(), &event_loop)
.or_else(|_| second_builder.build_windowed(builder, &event_loop)) .or_else(|_| {
log::info!("Trying second builder: {:#?}", second_builder);
second_builder.build_windowed(builder, &event_loop)
})
.map_err(|error| { .map_err(|error| {
use glutin::CreationError; use glutin::CreationError;
use iced_graphics::Error as ContextError; use iced_graphics::Error as ContextError;

View file

@ -28,6 +28,17 @@ impl Compositor {
) -> Option<Self> { ) -> Option<Self> {
let instance = wgpu::Instance::new(settings.internal_backend); let instance = wgpu::Instance::new(settings.internal_backend);
log::info!("{:#?}", settings);
#[cfg(not(target_arch = "wasm32"))]
{
let available_adapters: Vec<_> = instance
.enumerate_adapters(settings.internal_backend)
.map(|adapter| adapter.get_info())
.collect();
log::info!("Available adapters: {:#?}", available_adapters);
}
#[allow(unsafe_code)] #[allow(unsafe_code)]
let compatible_surface = compatible_window let compatible_surface = compatible_window
.map(|window| unsafe { instance.create_surface(window) }); .map(|window| unsafe { instance.create_surface(window) });
@ -44,10 +55,14 @@ impl Compositor {
}) })
.await?; .await?;
log::info!("Selected: {:#?}", adapter.get_info());
let format = compatible_surface let format = compatible_surface
.as_ref() .as_ref()
.and_then(|surface| surface.get_preferred_format(&adapter))?; .and_then(|surface| surface.get_preferred_format(&adapter))?;
log::info!("Selected format: {:?}", format);
#[cfg(target_arch = "wasm32")] #[cfg(target_arch = "wasm32")]
let limits = wgpu::Limits::downlevel_webgl2_defaults() let limits = wgpu::Limits::downlevel_webgl2_defaults()
.using_resolution(adapter.limits()); .using_resolution(adapter.limits());

View file

@ -137,14 +137,16 @@ where
let subscription = application.subscription(); let subscription = application.subscription();
let window = settings let builder = settings.window.into_builder(
.window &application.title(),
.into_builder( application.mode(),
&application.title(), event_loop.primary_monitor(),
application.mode(), settings.id,
event_loop.primary_monitor(), );
settings.id,
) log::info!("Window builder: {:#?}", builder);
let window = builder
.build(&event_loop) .build(&event_loop)
.map_err(Error::WindowCreationFailed)?; .map_err(Error::WindowCreationFailed)?;