From cab23f91b09bbaf6a287ddbed85f92f3f3a2fcf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Thu, 3 Dec 2015 02:50:00 +0100 Subject: [PATCH] Unbind WebGL context before creating frame It seems it's necessary, at least for seeing the `drawArrays` test, and probably a lot more. --- src/render_backend.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/render_backend.rs b/src/render_backend.rs index ed73f4923e..0ca611f52f 100644 --- a/src/render_backend.rs +++ b/src/render_backend.rs @@ -33,6 +33,7 @@ pub struct RenderBackend { notifier: Arc>>>, webrender_context_handle: Option, webgl_contexts: HashMap>, + current_bound_webgl_context_id: Option, } impl RenderBackend { @@ -68,6 +69,7 @@ impl RenderBackend { notifier: notifier, webrender_context_handle: webrender_context_handle, webgl_contexts: HashMap::new(), + current_bound_webgl_context_id: None, }; backend @@ -210,6 +212,7 @@ impl RenderBackend { let ctx = self.webgl_contexts.get(&context_id).unwrap(); ctx.make_current().unwrap(); command.apply(ctx); + self.current_bound_webgl_context_id = Some(context_id); } } } @@ -224,6 +227,10 @@ impl RenderBackend { // Flatten the stacking context hierarchy let mut new_pipeline_sizes = HashMap::new(); + if let Some(id) = self.current_bound_webgl_context_id { + self.webgl_contexts.get(&id).unwrap().unbind().unwrap(); + } + self.frame.create(&self.scene, Size2D::new(self.viewport.size.width as u32, self.viewport.size.height as u32),