diff options
author | Matt Brubeck <mbrubeck@limpet.net> | 2014-09-29 14:22:02 -0700 |
---|---|---|
committer | Matt Brubeck <mbrubeck@limpet.net> | 2014-10-10 11:36:12 -0700 |
commit | 77d32ee4470981af2074e164cf47fc7a909b1ed1 (patch) | |
tree | 72d56a7c4f95b61be955415e072383401164097c /src | |
parent | bfb81a5d103bb3e88830c9a553e1d0d3d1d402c0 (diff) | |
download | servo-77d32ee4470981af2074e164cf47fc7a909b1ed1.tar.gz servo-77d32ee4470981af2074e164cf47fc7a909b1ed1.zip |
Move windowing code out of the compositor
This is mainly just moving code around, in preparation for further changes to
the "windowing" API.
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 35 | ||||
-rw-r--r-- | src/main.rs | 15 |
2 files changed, 19 insertions, 31 deletions
diff --git a/src/lib.rs b/src/lib.rs index 79ace45134c..132d0314558 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -33,6 +33,8 @@ extern crate url; #[cfg(not(test))] use compositing::{CompositorChan, CompositorTask, Constellation}; #[cfg(not(test))] +use compositing::windowing::WindowMethods; +#[cfg(not(test))] use servo_msg::constellation_msg::{ConstellationChan, InitLoadUrlMsg}; #[cfg(not(test))] use script::dom::bindings::codegen::RegisterBindings; @@ -55,36 +57,12 @@ use green::GreenTaskBuilder; #[cfg(not(test))] use std::os; #[cfg(not(test))] +use std::rc::Rc; +#[cfg(not(test))] use std::task::TaskBuilder; -#[cfg(not(test), target_os="android")] -use std::string; - -#[cfg(not(test), target_os="android")] -#[no_mangle] -#[allow(dead_code)] -pub extern "C" fn android_start(argc: int, argv: *const *const u8) -> int { - native::start(argc, argv, proc() { - let mut args: Vec<String> = vec!(); - for i in range(0u, argc as uint) { - unsafe { - args.push(string::raw::from_buf(*argv.offset(i as int) as *const u8)); - } - } - - let opts = opts::from_cmdline_args(args.as_slice()); - match opts { - Some(mut o) => { - // Always use CPU rendering on android. - o.cpu_painting = true; - run(o); - }, - None => {} - } - }) -} #[cfg(not(test))] -pub fn run(opts: opts::Opts) { +pub fn run<Window: WindowMethods>(opts: opts::Opts, window: Option<Rc<Window>>) { ::servo_util::opts::set_experimental_enabled(opts.enable_experimental); RegisterBindings::RegisterProxyHandlers(); @@ -149,7 +127,8 @@ pub fn run(opts: opts::Opts) { let constellation_chan = result_port.recv(); debug!("preparing to enter main loop"); - CompositorTask::create(opts, + CompositorTask::create(window, + opts, compositor_port, constellation_chan, time_profiler_chan, diff --git a/src/main.rs b/src/main.rs index a1ced51d823..9d78c0967c7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,6 +12,9 @@ extern crate native; extern crate "util" as servo_util; #[cfg(not(test),not(target_os="android"))] +extern crate glfw_app; + +#[cfg(not(test),not(target_os="android"))] use servo_util::opts; #[cfg(not(test),not(target_os="android"))] @@ -20,13 +23,19 @@ use servo::run; #[cfg(not(test),not(target_os="android"))] use std::os; -#[cfg(not(test), target_os="linux")] -#[cfg(not(test), target_os="macos")] +#[cfg(not(test), not(target_os="android"))] #[start] #[allow(dead_code)] fn start(argc: int, argv: *const *const u8) -> int { native::start(argc, argv, proc() { - opts::from_cmdline_args(os::args().as_slice()).map(run); + opts::from_cmdline_args(os::args().as_slice()).map(|opts| { + let window = if opts.headless { + None + } else { + Some(glfw_app::create_window(&opts)) + }; + run(opts, window); + }); }) } |