diff --git a/direct-composition/src/main_windows.rs b/direct-composition/src/main_windows.rs index c085cd96f7..e9f2dc48f1 100644 --- a/direct-composition/src/main_windows.rs +++ b/direct-composition/src/main_windows.rs @@ -113,6 +113,7 @@ impl Rectangle { gl: composition.gleam.clone(), phantom_data: PhantomData, }, + Box::new(back::Instance {}), notifier.clone(), webrender::RendererOptions { clear_color: Some(api::ColorF::new(0., 0., 0., 0.)), diff --git a/examples/common/boilerplate.rs b/examples/common/boilerplate.rs index 8caec3e235..03ea5c9961 100644 --- a/examples/common/boilerplate.rs +++ b/examples/common/boilerplate.rs @@ -144,7 +144,7 @@ pub fn main_wrapper( .with_dimensions(winit::dpi::LogicalSize::new(E::WIDTH as f64, E::HEIGHT as f64)); #[cfg(feature = "gl")] - let (gl, mut init, window) = { + let (gl, mut init, instance, window) = { let context_builder = glutin::ContextBuilder::new() .with_gl(glutin::GlRequest::GlThenGles { opengl_version: (3, 2), @@ -172,7 +172,7 @@ pub fn main_wrapper( gl: gl.clone(), phantom_data: PhantomData, }; - (gl, init, window) + (gl, init, back::Instance{}, window) }; #[cfg(feature = "gfx-hal")] @@ -220,7 +220,7 @@ pub fn main_wrapper( DeviceUintSize::new(size.width as u32, size.height as u32) }; let notifier = Box::new(Notifier::new(events_loop.create_proxy())); - let (mut renderer, sender) = webrender::Renderer::new(init, notifier, opts, None).unwrap(); + let (mut renderer, sender) = webrender::Renderer::new(init, Box::new(instance), notifier, opts, None).unwrap(); let api = sender.create_api(); let document_id = api.add_document(framebuffer_size, 0); diff --git a/examples/multiwindow.rs b/examples/multiwindow.rs index bdb4e0dff0..75dbc2dc73 100644 --- a/examples/multiwindow.rs +++ b/examples/multiwindow.rs @@ -85,8 +85,6 @@ struct Window { epoch: Epoch, api: RenderApi, font_instance_key: FontInstanceKey, - #[cfg(feature = "gfx-hal")] - instance: back::Instance, } #[cfg(any(feature = "gfx-hal", feature = "gl"))] @@ -99,7 +97,7 @@ impl Window { .with_dimensions(LogicalSize::new(800., 600.)); #[cfg(feature = "gl")] - let (init, window) = { + let (init, instance, window) = { let context_builder = glutin::ContextBuilder::new() .with_gl(glutin::GlRequest::GlThenGles { opengl_version: (3, 2), @@ -126,7 +124,7 @@ impl Window { gl, phantom_data: PhantomData, }; - (init, window) + (init, back::Instance{}, window) }; #[cfg(feature = "gfx-hal")] @@ -165,7 +163,7 @@ impl Window { clear_color: Some(clear_color), ..webrender::RendererOptions::default() }; - webrender::Renderer::new(init, notifier, opts, None).unwrap() + webrender::Renderer::new(init, Box::new(instance), notifier, opts, None).unwrap() }; let api = sender.create_api(); let document_id = api.add_document(framebuffer_size, 0); @@ -193,8 +191,6 @@ impl Window { document_id, api, font_instance_key, - #[cfg(feature = "gfx-hal")] - instance, } } diff --git a/webrender/src/renderer.rs b/webrender/src/renderer.rs index 8023211a66..e77850488a 100644 --- a/webrender/src/renderer.rs +++ b/webrender/src/renderer.rs @@ -1217,6 +1217,7 @@ pub struct Renderer { result_rx: Receiver, debug_server: DebugServer, pub device: Device, + _instance: Box>, pending_texture_updates: Vec, pending_gpu_cache_updates: Vec, pending_shader_updates: Vec, @@ -1348,6 +1349,7 @@ impl Renderer /// [rendereroptions]: struct.RendererOptions.html pub fn new( init: DeviceInit, + _instance: Box>, notifier: Box, mut options: RendererOptions, shaders: Option<&mut WrShaders> @@ -1689,6 +1691,7 @@ impl Renderer let mut renderer = Renderer { result_rx, debug_server, + _instance, device, active_documents: Vec::new(), pending_texture_updates: Vec::new(), diff --git a/wrench/src/main.rs b/wrench/src/main.rs index fc1e331b51..68b3f64e8c 100644 --- a/wrench/src/main.rs +++ b/wrench/src/main.rs @@ -556,6 +556,9 @@ fn main() { #[cfg(feature = "gfx")] let instance = back::Instance::create("gfx-rs instance", 1); + #[cfg(not(feature = "gfx"))] + let instance = back::Instance{}; + #[cfg(feature = "gfx")] let init = webrender::DeviceInit { adapter: instance.enumerate_adapters().remove(0), @@ -588,6 +591,7 @@ fn main() { chase_primitive, notifier, init, + instance, ); if let Some(window_title) = wrench.take_title() { diff --git a/wrench/src/wrench.rs b/wrench/src/wrench.rs index d5692785b6..bb0e1e4c0b 100644 --- a/wrench/src/wrench.rs +++ b/wrench/src/wrench.rs @@ -186,6 +186,7 @@ impl Wrench { chase_primitive: webrender::ChasePrimitive, notifier: Option>, init: webrender::DeviceInit, + instance: back::Instance, ) -> Self { println!("Shader override path: {:?}", shader_override_path); @@ -239,7 +240,7 @@ impl Wrench { Box::new(Notifier(data)) }); - let (renderer, sender) = webrender::Renderer::new(init, notifier, opts, None).unwrap(); + let (renderer, sender) = webrender::Renderer::new(init, Box::new(instance), notifier, opts, None).unwrap(); let api = sender.create_api(); let document_id = api.add_document(size, 0);