Bug 1409736 - Update bindings for API changes in WR PR 1904. r?jrmuizel
MozReview-Commit-ID: Ipsv4QSgLYB
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -413,30 +413,36 @@ extern "C" {
fn wr_notifier_new_frame_ready(window_id: WrWindowId);
fn wr_notifier_new_scroll_frame_ready(window_id: WrWindowId,
composite_needed: bool);
fn wr_notifier_external_event(window_id: WrWindowId,
raw_event: usize);
}
impl webrender_api::RenderNotifier for CppNotifier {
- fn new_frame_ready(&mut self) {
+ fn clone(&self) -> Box<webrender_api::RenderNotifier> {
+ Box::new(CppNotifier {
+ window_id: self.window_id,
+ })
+ }
+
+ fn new_frame_ready(&self) {
unsafe {
wr_notifier_new_frame_ready(self.window_id);
}
}
- fn new_scroll_frame_ready(&mut self,
+ fn new_scroll_frame_ready(&self,
composite_needed: bool) {
unsafe {
wr_notifier_new_scroll_frame_ready(self.window_id, composite_needed);
}
}
- fn external_event(&mut self,
+ fn external_event(&self,
event: ExternalEvent) {
unsafe {
wr_notifier_external_event(self.window_id, event.unwrap());
}
}
}
#[no_mangle]
@@ -638,31 +644,31 @@ pub extern "C" fn wr_window_new(window_i
Ok(override_str) => Some(PathBuf::from(override_str)),
_ => None
}
}
},
..Default::default()
};
- let (renderer, sender) = match Renderer::new(gl, opts) {
+ let notifier = Box::new(CppNotifier {
+ window_id: window_id,
+ });
+ let (renderer, sender) = match Renderer::new(gl, notifier, opts) {
Ok((renderer, sender)) => (renderer, sender),
Err(e) => {
println!(" Failed to create a Renderer: {:?}", e);
let msg = CString::new(format!("wr_window_new: {:?}", e)).unwrap();
unsafe {
gfx_critical_note(msg.as_ptr());
}
return false;
},
};
- renderer.set_render_notifier(Box::new(CppNotifier {
- window_id: window_id,
- }));
unsafe {
*out_max_texture_size = renderer.get_max_texture_size();
}
let window_size = DeviceUintSize::new(window_width, window_height);
*out_handle = Box::into_raw(Box::new(
DocumentHandle::new(sender.create_api(), window_size)));
*out_renderer = Box::into_raw(Box::new(renderer));