diff options
author | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2015-11-01 14:47:46 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2015-11-01 20:30:38 +0100 |
commit | 938a05428aede1ddf65258d2d259baba9a5866b5 (patch) | |
tree | 23c417a7fbe2bc21fc73eb86335651d92f333f2f /components/servo/main.rs | |
parent | 35473b0009123de2a95d8072d93ff6703008b094 (diff) | |
download | servo-938a05428aede1ddf65258d2d259baba9a5866b5.tar.gz servo-938a05428aede1ddf65258d2d259baba9a5866b5.zip |
servo/main: Load gl symbols in headless mode
This allows running WebGL reftests in wpt.
Diffstat (limited to 'components/servo/main.rs')
-rw-r--r-- | components/servo/main.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/components/servo/main.rs b/components/servo/main.rs index b339babb972..6d830e7be73 100644 --- a/components/servo/main.rs +++ b/components/servo/main.rs @@ -29,12 +29,25 @@ extern crate log; extern crate servo; extern crate time; +extern crate gleam; +extern crate offscreen_gl_context; + +use gleam::gl; +use offscreen_gl_context::GLContext; use servo::Browser; use servo::compositing::windowing::WindowEvent; use servo::net_traits::hosts; use servo::util::opts; use std::rc::Rc; +#[cfg(not(target_os = "android"))] +fn load_gl_when_headless() { + gl::load_with(|addr| GLContext::get_proc_address(addr) as *const _); +} + +#[cfg(target_os = "android")] +fn load_gl_when_headless() {} + fn main() { env_logger::init().unwrap(); @@ -47,6 +60,9 @@ fn main() { hosts::global_init(); let window = if opts::get().headless { + // Load gl functions even when in headless mode, + // to avoid crashing with webgl + load_gl_when_headless(); None } else { Some(app::create_window(std::ptr::null_mut())) |