aboutsummaryrefslogtreecommitdiffstats
path: root/components/servo/main.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <ecoal95@gmail.com>2015-11-01 14:47:46 +0100
committerEmilio Cobos Álvarez <ecoal95@gmail.com>2015-11-01 20:30:38 +0100
commit938a05428aede1ddf65258d2d259baba9a5866b5 (patch)
tree23c417a7fbe2bc21fc73eb86335651d92f333f2f /components/servo/main.rs
parent35473b0009123de2a95d8072d93ff6703008b094 (diff)
downloadservo-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.rs16
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()))