Skip to content

Commit

Permalink
Add make_current to libsimpleservo
Browse files Browse the repository at this point in the history
  • Loading branch information
paulrouget committed Aug 1, 2018
1 parent e8af185 commit 02983ef
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ports/libsimpleservo/src/api.rs
Expand Up @@ -39,6 +39,9 @@ pub trait HostTrait {
/// Will be called from the thread used for the init call.
/// Will be called when the GL buffer has been updated.
fn flush(&self);
/// Will be called before drawing.
/// Time to make the targetted GL context current.
fn make_current(&self);
/// Page starts loading.
/// "Reload button" should be disabled.
/// "Stop button" should be enabled.
Expand Down Expand Up @@ -353,6 +356,7 @@ impl WindowMethods for ServoCallbacks {
_height: Length<u32, DevicePixel>,
) -> bool {
debug!("WindowMethods::prepare_for_composite");
self.host_callbacks.make_current();
true
}

Expand Down
6 changes: 6 additions & 0 deletions ports/libsimpleservo/src/capi.rs
Expand Up @@ -28,6 +28,7 @@ fn call<F>(f: F) where F: Fn(&mut ServoGlue) -> Result<(), &'static str> {
#[repr(C)]
pub struct CHostCallbacks {
pub flush: extern fn(),
pub make_current: extern fn(),
pub on_load_started: extern fn(),
pub on_load_ended: extern fn(),
pub on_title_changed: extern fn(title: *const c_char),
Expand Down Expand Up @@ -223,6 +224,11 @@ impl HostTrait for HostCallbacks {
(self.0.flush)();
}

fn make_current(&self) {
debug!("make_current");
(self.0.make_current)();
}

fn on_load_started(&self) {
debug!("on_load_ended");
(self.0.on_load_started)();
Expand Down
7 changes: 7 additions & 0 deletions ports/libsimpleservo/src/jniapi.rs
Expand Up @@ -277,6 +277,13 @@ impl HostTrait for HostCallbacks {
.unwrap();
}

fn make_current(&self) {
debug!("make_current");
let env = self.jvm.get_env().unwrap();
env.call_method(self.callbacks.as_obj(), "makeCurrent", "()V", &[])
.unwrap();
}

fn on_load_started(&self) {
debug!("on_load_started");
let env = self.jvm.get_env().unwrap();
Expand Down

0 comments on commit 02983ef

Please sign in to comment.