mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Move windowing code out of the compositor
This is mainly just moving code around, in preparation for further changes to the "windowing" API.
This commit is contained in:
parent
bfb81a5d10
commit
77d32ee447
23 changed files with 828 additions and 206 deletions
18
Cargo.lock
generated
18
Cargo.lock
generated
|
@ -4,6 +4,7 @@ version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"compositing 0.0.1",
|
"compositing 0.0.1",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
|
"glfw_app 0.0.1",
|
||||||
"layout 0.0.1",
|
"layout 0.0.1",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
"net 0.0.1",
|
"net 0.0.1",
|
||||||
|
@ -32,7 +33,7 @@ dependencies = [
|
||||||
"egl 0.1.0 (git+https://github.com/servo/rust-egl#88f2a13812ddbce2bf2317221663a61c31b3e220)",
|
"egl 0.1.0 (git+https://github.com/servo/rust-egl#88f2a13812ddbce2bf2317221663a61c31b3e220)",
|
||||||
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype#0b03da276e4bdeae2300596dabc4ccb16733ad70)",
|
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype#0b03da276e4bdeae2300596dabc4ccb16733ad70)",
|
||||||
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#7ccfaca315a43d97914e1601c90ad348ef190edf)",
|
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b)",
|
||||||
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
||||||
"skia-sys 0.0.20130412 (git+https://github.com/servo/skia#6d696712962fd0d41120b7a414a48417da8e6a92)",
|
"skia-sys 0.0.20130412 (git+https://github.com/servo/skia#6d696712962fd0d41120b7a414a48417da8e6a92)",
|
||||||
|
@ -64,8 +65,6 @@ dependencies = [
|
||||||
"devtools_traits 0.0.1",
|
"devtools_traits 0.0.1",
|
||||||
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#7ccfaca315a43d97914e1601c90ad348ef190edf)",
|
|
||||||
"glut 0.0.1 (git+https://github.com/servo/rust-glut#01af0162ea0322ad1a40d6adb023a39813605949)",
|
|
||||||
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
"layout_traits 0.0.1",
|
"layout_traits 0.0.1",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
|
@ -195,7 +194,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glfw"
|
name = "glfw"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/glfw-rs?ref=servo#7ccfaca315a43d97914e1601c90ad348ef190edf"
|
source = "git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glfw-sys 3.0.4 (git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae)",
|
"glfw-sys 3.0.4 (git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae)",
|
||||||
"semver 0.0.1 (git+https://github.com/rust-lang/semver#d04583a173395b76c1eaa15cc630a5f6f8f0ae10)",
|
"semver 0.0.1 (git+https://github.com/rust-lang/semver#d04583a173395b76c1eaa15cc630a5f6f8f0ae10)",
|
||||||
|
@ -207,11 +206,16 @@ version = "3.0.4"
|
||||||
source = "git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae"
|
source = "git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glut"
|
name = "glfw_app"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/rust-glut#01af0162ea0322ad1a40d6adb023a39813605949"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
"alert 0.1.0 (git+https://github.com/servo/rust-alert#fdc24f13be8d8a2d15214ec228d166b3221b809e)",
|
||||||
|
"compositing 0.0.1",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b)",
|
||||||
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"util 0.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -6,7 +6,7 @@ authors = ["The Servo Project Developers"]
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "servo"
|
name = "servo"
|
||||||
crate-type = ["rlib", "dylib"]
|
crate-type = ["rlib"]
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "servo"
|
name = "servo"
|
||||||
|
@ -24,6 +24,8 @@ name = "contenttest"
|
||||||
path = "tests/contenttest.rs"
|
path = "tests/contenttest.rs"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = ["glfw_app"]
|
||||||
|
|
||||||
[dependencies.compositing]
|
[dependencies.compositing]
|
||||||
path = "components/compositing"
|
path = "components/compositing"
|
||||||
|
@ -46,5 +48,9 @@ path = "components/layout"
|
||||||
[dependencies.gfx]
|
[dependencies.gfx]
|
||||||
path = "components/gfx"
|
path = "components/gfx"
|
||||||
|
|
||||||
|
[dependencies.glfw_app]
|
||||||
|
path = "ports/glfw"
|
||||||
|
optional = true
|
||||||
|
|
||||||
[dependencies.url]
|
[dependencies.url]
|
||||||
git = "https://github.com/servo/rust-url"
|
git = "https://github.com/servo/rust-url"
|
||||||
|
|
|
@ -89,7 +89,6 @@ git clone https://github.com/servo/servo
|
||||||
cd servo
|
cd servo
|
||||||
ANDROID_TOOLCHAIN=/path/to/toolchain ANDROID_NDK=/path/to/ndk PATH=$PATH:/path/to/toolchain/bin ./mach build --android
|
ANDROID_TOOLCHAIN=/path/to/toolchain ANDROID_NDK=/path/to/ndk PATH=$PATH:/path/to/toolchain/bin ./mach build --android
|
||||||
cd ports/android
|
cd ports/android
|
||||||
ANDROID_NDK=/path/to/ndk ANDROID_SDK=/path/to/sdk make
|
|
||||||
ANDROID_SDK=/path/to/sdk make install
|
ANDROID_SDK=/path/to/sdk make install
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -40,10 +40,6 @@ git = "https://github.com/servo/rust-azure"
|
||||||
[dependencies.geom]
|
[dependencies.geom]
|
||||||
git = "https://github.com/servo/rust-geom"
|
git = "https://github.com/servo/rust-geom"
|
||||||
|
|
||||||
[dependencies.glfw]
|
|
||||||
git = "https://github.com/servo/glfw-rs"
|
|
||||||
branch = "servo"
|
|
||||||
|
|
||||||
[dependencies.layers]
|
[dependencies.layers]
|
||||||
git = "https://github.com/servo/rust-layers"
|
git = "https://github.com/servo/rust-layers"
|
||||||
|
|
||||||
|
@ -61,7 +57,3 @@ git = "https://github.com/servo/rust-core-graphics"
|
||||||
|
|
||||||
[dependencies.core_text]
|
[dependencies.core_text]
|
||||||
git = "https://github.com/servo/rust-core-text"
|
git = "https://github.com/servo/rust-core-text"
|
||||||
|
|
||||||
[dependencies.glut]
|
|
||||||
git = "https://github.com/servo/rust-glut"
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ use constellation::SendableFrameTree;
|
||||||
use events;
|
use events;
|
||||||
use events::ScrollPositionChanged;
|
use events::ScrollPositionChanged;
|
||||||
use pipeline::CompositionPipeline;
|
use pipeline::CompositionPipeline;
|
||||||
use platform::{Application, Window};
|
|
||||||
use windowing;
|
use windowing;
|
||||||
use windowing::{FinishedWindowEvent, IdleWindowEvent, LoadUrlWindowEvent, MouseWindowClickEvent};
|
use windowing::{FinishedWindowEvent, IdleWindowEvent, LoadUrlWindowEvent, MouseWindowClickEvent};
|
||||||
use windowing::{MouseWindowEvent, MouseWindowEventClass, MouseWindowMouseDownEvent};
|
use windowing::{MouseWindowEvent, MouseWindowEventClass, MouseWindowMouseDownEvent};
|
||||||
|
@ -54,7 +53,7 @@ use time::precise_time_s;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
|
|
||||||
pub struct IOCompositor {
|
pub struct IOCompositor<Window: WindowMethods> {
|
||||||
/// The application window.
|
/// The application window.
|
||||||
window: Rc<Window>,
|
window: Rc<Window>,
|
||||||
|
|
||||||
|
@ -136,22 +135,13 @@ enum ShutdownState {
|
||||||
FinishedShuttingDown,
|
FinishedShuttingDown,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl IOCompositor {
|
impl<Window: WindowMethods> IOCompositor<Window> {
|
||||||
fn new(app: &Application,
|
fn new(window: Rc<Window>,
|
||||||
opts: Opts,
|
opts: Opts,
|
||||||
port: Receiver<Msg>,
|
port: Receiver<Msg>,
|
||||||
constellation_chan: ConstellationChan,
|
constellation_chan: ConstellationChan,
|
||||||
time_profiler_chan: TimeProfilerChan,
|
time_profiler_chan: TimeProfilerChan,
|
||||||
memory_profiler_chan: MemoryProfilerChan) -> IOCompositor {
|
memory_profiler_chan: MemoryProfilerChan) -> IOCompositor<Window> {
|
||||||
|
|
||||||
let scale_factor = match opts.device_pixels_per_px {
|
|
||||||
Some(device_pixels_per_px) => device_pixels_per_px,
|
|
||||||
None => ScaleFactor(1.0),
|
|
||||||
};
|
|
||||||
let framebuffer_size = opts.initial_window_size.as_f32() * scale_factor;
|
|
||||||
|
|
||||||
let window: Rc<Window> = WindowMethods::new(app, opts.output_file.is_none(),
|
|
||||||
framebuffer_size.as_uint());
|
|
||||||
|
|
||||||
// Create an initial layer tree.
|
// Create an initial layer tree.
|
||||||
//
|
//
|
||||||
|
@ -192,13 +182,13 @@ impl IOCompositor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create(app: &Application,
|
pub fn create(window: Rc<Window>,
|
||||||
opts: Opts,
|
opts: Opts,
|
||||||
port: Receiver<Msg>,
|
port: Receiver<Msg>,
|
||||||
constellation_chan: ConstellationChan,
|
constellation_chan: ConstellationChan,
|
||||||
time_profiler_chan: TimeProfilerChan,
|
time_profiler_chan: TimeProfilerChan,
|
||||||
memory_profiler_chan: MemoryProfilerChan) {
|
memory_profiler_chan: MemoryProfilerChan) {
|
||||||
let mut compositor = IOCompositor::new(app,
|
let mut compositor = IOCompositor::new(window,
|
||||||
opts,
|
opts,
|
||||||
port,
|
port,
|
||||||
constellation_chan,
|
constellation_chan,
|
||||||
|
|
|
@ -7,8 +7,7 @@ pub use windowing;
|
||||||
use compositor;
|
use compositor;
|
||||||
use headless;
|
use headless;
|
||||||
pub use constellation::SendableFrameTree;
|
pub use constellation::SendableFrameTree;
|
||||||
use windowing::{ApplicationMethods, WindowMethods};
|
use windowing::WindowMethods;
|
||||||
use platform::Application;
|
|
||||||
|
|
||||||
use azure::azure_hl::{SourceSurfaceMethods, Color};
|
use azure::azure_hl::{SourceSurfaceMethods, Color};
|
||||||
use geom::point::Point2D;
|
use geom::point::Point2D;
|
||||||
|
@ -23,6 +22,7 @@ use servo_util::memory::MemoryProfilerChan;
|
||||||
use servo_util::opts::Opts;
|
use servo_util::opts::Opts;
|
||||||
use servo_util::time::TimeProfilerChan;
|
use servo_util::time::TimeProfilerChan;
|
||||||
use std::comm::{channel, Sender, Receiver};
|
use std::comm::{channel, Sender, Receiver};
|
||||||
|
use std::rc::Rc;
|
||||||
|
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
|
@ -183,28 +183,9 @@ pub enum Msg {
|
||||||
LoadComplete(PipelineId, Url),
|
LoadComplete(PipelineId, Url),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub enum CompositorMode {
|
pub struct CompositorTask;
|
||||||
Windowed(Application),
|
|
||||||
Headless
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct CompositorTask {
|
|
||||||
pub mode: CompositorMode,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl CompositorTask {
|
impl CompositorTask {
|
||||||
fn new(is_headless: bool) -> CompositorTask {
|
|
||||||
let mode: CompositorMode = if is_headless {
|
|
||||||
Headless
|
|
||||||
} else {
|
|
||||||
Windowed(ApplicationMethods::new())
|
|
||||||
};
|
|
||||||
|
|
||||||
CompositorTask {
|
|
||||||
mode: mode
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates a graphics context. Platform-specific.
|
/// Creates a graphics context. Platform-specific.
|
||||||
///
|
///
|
||||||
/// FIXME(pcwalton): Probably could be less platform-specific, using the metadata abstraction.
|
/// FIXME(pcwalton): Probably could be less platform-specific, using the metadata abstraction.
|
||||||
|
@ -217,24 +198,24 @@ impl CompositorTask {
|
||||||
NativeCompositingGraphicsContext::new()
|
NativeCompositingGraphicsContext::new()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create(opts: Opts,
|
pub fn create<Window: WindowMethods>(
|
||||||
|
window: Option<Rc<Window>>,
|
||||||
|
opts: Opts,
|
||||||
port: Receiver<Msg>,
|
port: Receiver<Msg>,
|
||||||
constellation_chan: ConstellationChan,
|
constellation_chan: ConstellationChan,
|
||||||
time_profiler_chan: TimeProfilerChan,
|
time_profiler_chan: TimeProfilerChan,
|
||||||
memory_profiler_chan: MemoryProfilerChan) {
|
memory_profiler_chan: MemoryProfilerChan) {
|
||||||
|
|
||||||
let compositor = CompositorTask::new(opts.headless);
|
match window {
|
||||||
|
Some(window) => {
|
||||||
match compositor.mode {
|
compositor::IOCompositor::create(window,
|
||||||
Windowed(ref app) => {
|
|
||||||
compositor::IOCompositor::create(app,
|
|
||||||
opts,
|
opts,
|
||||||
port,
|
port,
|
||||||
constellation_chan.clone(),
|
constellation_chan.clone(),
|
||||||
time_profiler_chan,
|
time_profiler_chan,
|
||||||
memory_profiler_chan)
|
memory_profiler_chan)
|
||||||
}
|
}
|
||||||
Headless => {
|
None => {
|
||||||
headless::NullCompositor::create(port,
|
headless::NullCompositor::create(port,
|
||||||
constellation_chan.clone(),
|
constellation_chan.clone(),
|
||||||
time_profiler_chan,
|
time_profiler_chan,
|
||||||
|
|
|
@ -19,10 +19,6 @@ extern crate azure;
|
||||||
extern crate devtools_traits;
|
extern crate devtools_traits;
|
||||||
extern crate geom;
|
extern crate geom;
|
||||||
extern crate gfx;
|
extern crate gfx;
|
||||||
#[cfg(not(target_os="android"))]
|
|
||||||
extern crate glfw;
|
|
||||||
#[cfg(target_os="android")]
|
|
||||||
extern crate glut;
|
|
||||||
extern crate layers;
|
extern crate layers;
|
||||||
extern crate layout_traits;
|
extern crate layout_traits;
|
||||||
extern crate opengles;
|
extern crate opengles;
|
||||||
|
@ -56,7 +52,4 @@ mod headless;
|
||||||
pub mod pipeline;
|
pub mod pipeline;
|
||||||
pub mod constellation;
|
pub mod constellation;
|
||||||
|
|
||||||
mod windowing;
|
pub mod windowing;
|
||||||
|
|
||||||
#[path="platform/mod.rs"]
|
|
||||||
pub mod platform;
|
|
||||||
|
|
|
@ -10,7 +10,6 @@ use geom::size::TypedSize2D;
|
||||||
use layers::geometry::DevicePixel;
|
use layers::geometry::DevicePixel;
|
||||||
use servo_msg::compositor_msg::{ReadyState, RenderState};
|
use servo_msg::compositor_msg::{ReadyState, RenderState};
|
||||||
use servo_util::geometry::ScreenPx;
|
use servo_util::geometry::ScreenPx;
|
||||||
use std::rc::Rc;
|
|
||||||
|
|
||||||
pub enum MouseWindowEvent {
|
pub enum MouseWindowEvent {
|
||||||
MouseWindowClickEvent(uint, TypedPoint2D<DevicePixel, f32>),
|
MouseWindowClickEvent(uint, TypedPoint2D<DevicePixel, f32>),
|
||||||
|
@ -54,14 +53,7 @@ pub enum WindowEvent {
|
||||||
QuitWindowEvent,
|
QuitWindowEvent,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Methods for an abstract Application.
|
pub trait WindowMethods {
|
||||||
pub trait ApplicationMethods {
|
|
||||||
fn new() -> Self;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub trait WindowMethods<A> {
|
|
||||||
/// Creates a new window.
|
|
||||||
fn new(app: &A, is_foreground: bool, size: TypedSize2D<DevicePixel, uint>) -> Rc<Self>;
|
|
||||||
/// Returns the size of the window in hardware pixels.
|
/// Returns the size of the window in hardware pixels.
|
||||||
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, uint>;
|
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, uint>;
|
||||||
/// Returns the size of the window in density-independent "px" units.
|
/// Returns the size of the window in density-independent "px" units.
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
|
CARGO_OPTS ?=
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all:
|
all: glut_app
|
||||||
NDK_DEBUG=1 $(ANDROID_NDK)/ndk-build -B
|
NDK_DEBUG=1 $(ANDROID_NDK)/ndk-build -B
|
||||||
find ../../target ! \( -type d -name dist -prune \) -name libmozjs.so | \
|
find glut_app/target ! \( -type d -name dist -prune \) -name libmozjs.so | \
|
||||||
xargs -I {} cp -f {} libs/armeabi
|
xargs -I {} cp -f {} libs/armeabi
|
||||||
find ../../target ! \( -type d -name dist -prune \) -name 'libservo-*.so' | \
|
find glut_app/target ! \( -type d -name dist -prune \) -name 'libglut_app-*.so' | \
|
||||||
xargs -I {} cp -f {} libs/armeabi/libservo.so
|
xargs -I {} cp -f {} libs/armeabi/libservo.so
|
||||||
find ../../rust/lib/rustlib/arm-linux-androideabi/lib \
|
find ../../rust/lib/rustlib/arm-linux-androideabi/lib \
|
||||||
-name '*.so' -type f -size +1c | \
|
-name '*.so' -type f -size +1c | \
|
||||||
|
@ -14,6 +16,11 @@ all:
|
||||||
--path .
|
--path .
|
||||||
ant debug
|
ant debug
|
||||||
|
|
||||||
|
.PHONY: glut_app
|
||||||
|
glut_app:
|
||||||
|
cd glut_app; \
|
||||||
|
../../../mach cargo build --target=arm-linux-androideabi $(CARGO_OPTS)
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install:
|
install:
|
||||||
$(ANDROID_SDK)/platform-tools/adb install -r bin/ServoAndroid-debug.apk
|
$(ANDROID_SDK)/platform-tools/adb install -r bin/ServoAndroid-debug.apk
|
||||||
|
|
519
ports/android/glut_app/Cargo.lock
generated
Normal file
519
ports/android/glut_app/Cargo.lock
generated
Normal file
|
@ -0,0 +1,519 @@
|
||||||
|
[root]
|
||||||
|
name = "glut_app"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"alert 0.1.0 (git+https://github.com/servo/rust-alert#fdc24f13be8d8a2d15214ec228d166b3221b809e)",
|
||||||
|
"compositing 0.0.1",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"glut 0.0.1 (git+https://github.com/servo/rust-glut#01af0162ea0322ad1a40d6adb023a39813605949)",
|
||||||
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"servo 0.0.1",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "alert"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-alert#fdc24f13be8d8a2d15214ec228d166b3221b809e"
|
||||||
|
dependencies = [
|
||||||
|
"cocoa 0.1.0 (git+https://github.com/servo/rust-cocoa#acb9b4efc70c3f285057c2aee774f38f81a1b98d)",
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "azure"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-azure#b357751c04a89a87e6ef1f0cebe5f20957dd112d"
|
||||||
|
dependencies = [
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
"core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics#6a9919f8a912cc67571b891ba198d5325964a104)",
|
||||||
|
"core_text 0.1.0 (git+https://github.com/servo/rust-core-text#1ad11072b31657eeccaf4879c6e98723d488bd3d)",
|
||||||
|
"egl 0.1.0 (git+https://github.com/servo/rust-egl#88f2a13812ddbce2bf2317221663a61c31b3e220)",
|
||||||
|
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype#0b03da276e4bdeae2300596dabc4ccb16733ad70)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b)",
|
||||||
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
|
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
||||||
|
"skia-sys 0.0.20130412 (git+https://github.com/servo/skia#6d696712962fd0d41120b7a414a48417da8e6a92)",
|
||||||
|
"xlib 0.1.0 (git+https://github.com/servo/rust-xlib#581d4faddec5188d3c3ae5307dbea28aab90644c)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "canvas"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure#b357751c04a89a87e6ef1f0cebe5f20957dd112d)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cocoa"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-cocoa#acb9b4efc70c3f285057c2aee774f38f81a1b98d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "compositing"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"alert 0.1.0 (git+https://github.com/servo/rust-alert#fdc24f13be8d8a2d15214ec228d166b3221b809e)",
|
||||||
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure#b357751c04a89a87e6ef1f0cebe5f20957dd112d)",
|
||||||
|
"core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics#6a9919f8a912cc67571b891ba198d5325964a104)",
|
||||||
|
"core_text 0.1.0 (git+https://github.com/servo/rust-core-text#1ad11072b31657eeccaf4879c6e98723d488bd3d)",
|
||||||
|
"devtools 0.0.1",
|
||||||
|
"devtools_traits 0.0.1",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"gfx 0.0.1",
|
||||||
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
|
"layout_traits 0.0.1",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"net 0.0.1",
|
||||||
|
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
||||||
|
"png 0.1.0 (git+https://github.com/servo/rust-png#74418ffbf20e94b0d3bed4a9d004062a13342c79)",
|
||||||
|
"script_traits 0.0.1",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "core_foundation"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "core_graphics"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-core-graphics#6a9919f8a912cc67571b891ba198d5325964a104"
|
||||||
|
dependencies = [
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "core_text"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-core-text#1ad11072b31657eeccaf4879c6e98723d488bd3d"
|
||||||
|
dependencies = [
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
"core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics#6a9919f8a912cc67571b891ba198d5325964a104)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cssparser"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-cssparser#22146ce095cb62df39d459c3a79d1486041f96f6"
|
||||||
|
dependencies = [
|
||||||
|
"encoding 0.1.0 (git+https://github.com/lifthrasiir/rust-encoding#28eafb604a92c7786685b46c0fc02682ba3ab265)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "devtools"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"devtools_traits 0.0.1",
|
||||||
|
"msg 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "devtools_traits"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"msg 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "egl"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-egl#88f2a13812ddbce2bf2317221663a61c31b3e220"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "encoding"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/lifthrasiir/rust-encoding#28eafb604a92c7786685b46c0fc02682ba3ab265"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "expat-sys"
|
||||||
|
version = "2.1.0"
|
||||||
|
source = "git+https://github.com/servo/libexpat#da2ddaf78cbef836b8790807bb76b357c58df3a1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fontconfig"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-fontconfig#b16c1e12ecb74b1e4e9a9b23c2b98580a34cf201"
|
||||||
|
dependencies = [
|
||||||
|
"fontconfig-sys 2.11.1 (git+https://github.com/servo/libfontconfig#fcc324d2c8175d2e8e8c0aab032c03a404809f6d)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fontconfig-sys"
|
||||||
|
version = "2.11.1"
|
||||||
|
source = "git+https://github.com/servo/libfontconfig#fcc324d2c8175d2e8e8c0aab032c03a404809f6d"
|
||||||
|
dependencies = [
|
||||||
|
"expat-sys 2.1.0 (git+https://github.com/servo/libexpat#da2ddaf78cbef836b8790807bb76b357c58df3a1)",
|
||||||
|
"freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2#5b6499164106f094937565595c7b96d07de55521)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "freetype"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-freetype#0b03da276e4bdeae2300596dabc4ccb16733ad70"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "freetype-sys"
|
||||||
|
version = "2.4.11"
|
||||||
|
source = "git+https://github.com/servo/libfreetype2#5b6499164106f094937565595c7b96d07de55521"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "geom"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "gfx"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure#b357751c04a89a87e6ef1f0cebe5f20957dd112d)",
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
"core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics#6a9919f8a912cc67571b891ba198d5325964a104)",
|
||||||
|
"core_text 0.1.0 (git+https://github.com/servo/rust-core-text#1ad11072b31657eeccaf4879c6e98723d488bd3d)",
|
||||||
|
"fontconfig 0.1.0 (git+https://github.com/servo/rust-fontconfig#b16c1e12ecb74b1e4e9a9b23c2b98580a34cf201)",
|
||||||
|
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype#0b03da276e4bdeae2300596dabc4ccb16733ad70)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"harfbuzz 0.1.0 (git+https://github.com/servo/rust-harfbuzz#ad520942cc17232e1a40cdd8a99c2905623d35f6)",
|
||||||
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"net 0.0.1",
|
||||||
|
"plugins 0.0.1",
|
||||||
|
"png 0.1.0 (git+https://github.com/servo/rust-png#74418ffbf20e94b0d3bed4a9d004062a13342c79)",
|
||||||
|
"stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image#f5022de4ad6bb474a03493d1f274dde9b0f1af0c)",
|
||||||
|
"style 0.0.1",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glfw"
|
||||||
|
version = "0.0.1"
|
||||||
|
source = "git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b"
|
||||||
|
dependencies = [
|
||||||
|
"glfw-sys 3.0.4 (git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae)",
|
||||||
|
"semver 0.0.1 (git+https://github.com/rust-lang/semver#d04583a173395b76c1eaa15cc630a5f6f8f0ae10)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glfw-sys"
|
||||||
|
version = "3.0.4"
|
||||||
|
source = "git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glut"
|
||||||
|
version = "0.0.1"
|
||||||
|
source = "git+https://github.com/servo/rust-glut#01af0162ea0322ad1a40d6adb023a39813605949"
|
||||||
|
dependencies = [
|
||||||
|
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "harfbuzz"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-harfbuzz#ad520942cc17232e1a40cdd8a99c2905623d35f6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "http"
|
||||||
|
version = "0.1.0-pre"
|
||||||
|
source = "git+https://github.com/servo/rust-http?ref=servo#92019011b0cdf1bffc8c584830de1bf330d79d0d"
|
||||||
|
dependencies = [
|
||||||
|
"openssl 0.0.0 (git+https://github.com/sfackler/rust-openssl.git#a495465b75ffb18ff2303c5a11a103e00a15a13d)",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hubbub"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-hubbub#c7f868e688de6e9cbdc26aa09292ed072bc2648b"
|
||||||
|
dependencies = [
|
||||||
|
"hubbub-sys 0.1.2 (git+https://github.com/servo/libhubbub#6d09893991dedc616b264058442a304c03842213)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hubbub-sys"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "git+https://github.com/servo/libhubbub#6d09893991dedc616b264058442a304c03842213"
|
||||||
|
dependencies = [
|
||||||
|
"parserutils-sys 0.1.1 (git+https://github.com/servo/libparserutils#651b636ba1214bceeb0907adb1eab60efe0d4598)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "io_surface"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-io-surface#7038341220bd7e86e21118fac2cbc6bd50890e47"
|
||||||
|
dependencies = [
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "js"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-mozjs#41fb0d80a5ed5614ca13a120cdb3281e599d4e04"
|
||||||
|
dependencies = [
|
||||||
|
"mozjs-sys 0.0.0 (git+https://github.com/servo/mozjs#47cd6a4e60c75642ba182f0df9a42b71ec7c2c88)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "layers"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8"
|
||||||
|
dependencies = [
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
"egl 0.1.0 (git+https://github.com/servo/rust-egl#88f2a13812ddbce2bf2317221663a61c31b3e220)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface#7038341220bd7e86e21118fac2cbc6bd50890e47)",
|
||||||
|
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
||||||
|
"xlib 0.1.0 (git+https://github.com/servo/rust-xlib#581d4faddec5188d3c3ae5307dbea28aab90644c)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "layout"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"encoding 0.1.0 (git+https://github.com/lifthrasiir/rust-encoding#28eafb604a92c7786685b46c0fc02682ba3ab265)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"gfx 0.0.1",
|
||||||
|
"layout_traits 0.0.1",
|
||||||
|
"net 0.0.1",
|
||||||
|
"plugins 0.0.1",
|
||||||
|
"script 0.0.1",
|
||||||
|
"script_traits 0.0.1",
|
||||||
|
"string_cache 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"string_cache_macros 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"style 0.0.1",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "layout_traits"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"gfx 0.0.1",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"net 0.0.1",
|
||||||
|
"script_traits 0.0.1",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lazy_static"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/Kimundi/lazy-static.rs#e62a65372f1dd9019e37eb9381d819edff80e360"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mozjs-sys"
|
||||||
|
version = "0.0.0"
|
||||||
|
source = "git+https://github.com/servo/mozjs#47cd6a4e60c75642ba182f0df9a42b71ec7c2c88"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "msg"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure#b357751c04a89a87e6ef1f0cebe5f20957dd112d)",
|
||||||
|
"core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation#166a601ff3e0fc3a64ca1a9090d02c8d4f22b61a)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface#7038341220bd7e86e21118fac2cbc6bd50890e47)",
|
||||||
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "net"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"http 0.1.0-pre (git+https://github.com/servo/rust-http?ref=servo#92019011b0cdf1bffc8c584830de1bf330d79d0d)",
|
||||||
|
"png 0.1.0 (git+https://github.com/servo/rust-png#74418ffbf20e94b0d3bed4a9d004062a13342c79)",
|
||||||
|
"stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image#f5022de4ad6bb474a03493d1f274dde9b0f1af0c)",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "opengles"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "openssl"
|
||||||
|
version = "0.0.0"
|
||||||
|
source = "git+https://github.com/sfackler/rust-openssl.git#a495465b75ffb18ff2303c5a11a103e00a15a13d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "parserutils-sys"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "git+https://github.com/servo/libparserutils#651b636ba1214bceeb0907adb1eab60efe0d4598"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf"
|
||||||
|
version = "0.0.0"
|
||||||
|
source = "git+https://github.com/sfackler/rust-phf#06254fdde7708630a6397c41c6c17ef81a4b66a0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_mac"
|
||||||
|
version = "0.0.0"
|
||||||
|
source = "git+https://github.com/sfackler/rust-phf#06254fdde7708630a6397c41c6c17ef81a4b66a0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "plugins"
|
||||||
|
version = "0.0.1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "png"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-png#74418ffbf20e94b0d3bed4a9d004062a13342c79"
|
||||||
|
dependencies = [
|
||||||
|
"png-sys 1.6.3 (git+https://github.com/servo/libpng?ref=servo#d01f32b4eb86904695efe7fc02b574f902e21a98)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "png-sys"
|
||||||
|
version = "1.6.3"
|
||||||
|
source = "git+https://github.com/servo/libpng?ref=servo#d01f32b4eb86904695efe7fc02b574f902e21a98"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "script"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"canvas 0.0.1",
|
||||||
|
"cssparser 0.1.0 (git+https://github.com/servo/rust-cssparser#22146ce095cb62df39d459c3a79d1486041f96f6)",
|
||||||
|
"devtools_traits 0.0.1",
|
||||||
|
"encoding 0.1.0 (git+https://github.com/lifthrasiir/rust-encoding#28eafb604a92c7786685b46c0fc02682ba3ab265)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"gfx 0.0.1",
|
||||||
|
"http 0.1.0-pre (git+https://github.com/servo/rust-http?ref=servo#92019011b0cdf1bffc8c584830de1bf330d79d0d)",
|
||||||
|
"hubbub 0.1.0 (git+https://github.com/servo/rust-hubbub#c7f868e688de6e9cbdc26aa09292ed072bc2648b)",
|
||||||
|
"js 0.1.0 (git+https://github.com/servo/rust-mozjs#41fb0d80a5ed5614ca13a120cdb3281e599d4e04)",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"net 0.0.1",
|
||||||
|
"plugins 0.0.1",
|
||||||
|
"script_traits 0.0.1",
|
||||||
|
"string_cache 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"string_cache_macros 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"style 0.0.1",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
"uuid 0.0.1 (git+https://github.com/rust-lang/uuid#c3041068f413a5e46d795d21a346072794593839)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "script_traits"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"devtools_traits 0.0.1",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"net 0.0.1",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "semver"
|
||||||
|
version = "0.0.1"
|
||||||
|
source = "git+https://github.com/rust-lang/semver#d04583a173395b76c1eaa15cc630a5f6f8f0ae10"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "servo"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"compositing 0.0.1",
|
||||||
|
"gfx 0.0.1",
|
||||||
|
"layout 0.0.1",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"net 0.0.1",
|
||||||
|
"script 0.0.1",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "skia-sys"
|
||||||
|
version = "0.0.20130412"
|
||||||
|
source = "git+https://github.com/servo/skia#6d696712962fd0d41120b7a414a48417da8e6a92"
|
||||||
|
dependencies = [
|
||||||
|
"expat-sys 2.1.0 (git+https://github.com/servo/libexpat#da2ddaf78cbef836b8790807bb76b357c58df3a1)",
|
||||||
|
"freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2#5b6499164106f094937565595c7b96d07de55521)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "stb_image"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-stb-image#f5022de4ad6bb474a03493d1f274dde9b0f1af0c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "string_cache"
|
||||||
|
version = "0.0.0"
|
||||||
|
source = "git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98"
|
||||||
|
dependencies = [
|
||||||
|
"phf 0.0.0 (git+https://github.com/sfackler/rust-phf#06254fdde7708630a6397c41c6c17ef81a4b66a0)",
|
||||||
|
"phf_mac 0.0.0 (git+https://github.com/sfackler/rust-phf#06254fdde7708630a6397c41c6c17ef81a4b66a0)",
|
||||||
|
"string_cache_macros 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "string_cache_macros"
|
||||||
|
version = "0.0.0"
|
||||||
|
source = "git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static 0.1.0 (git+https://github.com/Kimundi/lazy-static.rs#e62a65372f1dd9019e37eb9381d819edff80e360)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "style"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"cssparser 0.1.0 (git+https://github.com/servo/rust-cssparser#22146ce095cb62df39d459c3a79d1486041f96f6)",
|
||||||
|
"encoding 0.1.0 (git+https://github.com/lifthrasiir/rust-encoding#28eafb604a92c7786685b46c0fc02682ba3ab265)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"lazy_static 0.1.0 (git+https://github.com/Kimundi/lazy-static.rs#e62a65372f1dd9019e37eb9381d819edff80e360)",
|
||||||
|
"plugins 0.0.1",
|
||||||
|
"string_cache 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"string_cache_macros 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "task_info"
|
||||||
|
version = "0.0.1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "url"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243"
|
||||||
|
dependencies = [
|
||||||
|
"encoding 0.1.0 (git+https://github.com/lifthrasiir/rust-encoding#28eafb604a92c7786685b46c0fc02682ba3ab265)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "util"
|
||||||
|
version = "0.0.1"
|
||||||
|
dependencies = [
|
||||||
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure#b357751c04a89a87e6ef1f0cebe5f20957dd112d)",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"string_cache 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"string_cache_macros 0.0.0 (git+https://github.com/servo/string-cache#97754929f38d93f6728d1f0acce8107648420e98)",
|
||||||
|
"task_info 0.0.1",
|
||||||
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "uuid"
|
||||||
|
version = "0.0.1"
|
||||||
|
source = "git+https://github.com/rust-lang/uuid#c3041068f413a5e46d795d21a346072794593839"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "xlib"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://github.com/servo/rust-xlib#581d4faddec5188d3c3ae5307dbea28aab90644c"
|
||||||
|
|
34
ports/android/glut_app/Cargo.toml
Normal file
34
ports/android/glut_app/Cargo.toml
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[package]
|
||||||
|
name = "glut_app"
|
||||||
|
version = "0.0.1"
|
||||||
|
authors = ["The Servo Project Developers"]
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
name = "glut_app"
|
||||||
|
path = "lib.rs"
|
||||||
|
crate-type = ["dylib"]
|
||||||
|
|
||||||
|
[dependencies.alert]
|
||||||
|
git = "https://github.com/servo/rust-alert"
|
||||||
|
|
||||||
|
[dependencies.compositing]
|
||||||
|
path = "../../../components/compositing"
|
||||||
|
|
||||||
|
[dependencies.geom]
|
||||||
|
git = "https://github.com/servo/rust-geom"
|
||||||
|
|
||||||
|
[dependencies.glut]
|
||||||
|
git = "https://github.com/servo/rust-glut"
|
||||||
|
|
||||||
|
[dependencies.layers]
|
||||||
|
git = "https://github.com/servo/rust-layers"
|
||||||
|
|
||||||
|
[dependencies.msg]
|
||||||
|
path = "../../../components/msg"
|
||||||
|
|
||||||
|
[dependencies.servo]
|
||||||
|
path = "../../.."
|
||||||
|
default-features = false
|
||||||
|
|
||||||
|
[dependencies.util]
|
||||||
|
path = "../../../components/util"
|
64
ports/android/glut_app/lib.rs
Normal file
64
ports/android/glut_app/lib.rs
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
//! A simple application that uses GLUT to open a window for Servo to display in.
|
||||||
|
|
||||||
|
#![license = "MPL"]
|
||||||
|
#![feature(macro_rules, phase)]
|
||||||
|
#![deny(unused_imports, unused_variable)]
|
||||||
|
|
||||||
|
extern crate alert;
|
||||||
|
extern crate compositing;
|
||||||
|
extern crate geom;
|
||||||
|
extern crate glut;
|
||||||
|
extern crate layers;
|
||||||
|
extern crate libc;
|
||||||
|
#[phase(plugin, link)] extern crate log;
|
||||||
|
extern crate msg;
|
||||||
|
extern crate native;
|
||||||
|
extern crate servo;
|
||||||
|
#[phase(plugin, link)] extern crate util;
|
||||||
|
|
||||||
|
use geom::scale_factor::ScaleFactor;
|
||||||
|
use std::rc::Rc;
|
||||||
|
use std::string;
|
||||||
|
use util::opts;
|
||||||
|
use window::Window;
|
||||||
|
|
||||||
|
use glut::glut::{init, init_display_mode, DOUBLE};
|
||||||
|
|
||||||
|
mod window;
|
||||||
|
|
||||||
|
pub fn create_window(opts: &opts::Opts) -> Rc<Window> {
|
||||||
|
// Initialize GLUT.
|
||||||
|
init();
|
||||||
|
init_display_mode(DOUBLE);
|
||||||
|
|
||||||
|
// Read command-line options.
|
||||||
|
let scale_factor = opts.device_pixels_per_px.unwrap_or(ScaleFactor(1.0));
|
||||||
|
let size = opts.initial_window_size.as_f32() * scale_factor;
|
||||||
|
|
||||||
|
// Open a window.
|
||||||
|
Window::new(size.as_uint())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
opts::from_cmdline_args(args.as_slice()).map(|mut opts| {
|
||||||
|
// Always use CPU rendering on android.
|
||||||
|
opts.cpu_painting = true;
|
||||||
|
let window = Some(create_window(&opts));
|
||||||
|
servo::run(opts, window);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
|
@ -4,11 +4,11 @@
|
||||||
|
|
||||||
//! A windowing implementation using GLUT.
|
//! A windowing implementation using GLUT.
|
||||||
|
|
||||||
use windowing::{ApplicationMethods, WindowEvent, WindowMethods};
|
use compositing::windowing::{WindowEvent, WindowMethods};
|
||||||
use windowing::{IdleWindowEvent, ResizeWindowEvent, LoadUrlWindowEvent, MouseWindowEventClass};
|
use compositing::windowing::{IdleWindowEvent, ResizeWindowEvent, LoadUrlWindowEvent, MouseWindowEventClass};
|
||||||
use windowing::{ScrollWindowEvent, ZoomWindowEvent, NavigationWindowEvent, FinishedWindowEvent};
|
use compositing::windowing::{ScrollWindowEvent, ZoomWindowEvent, NavigationWindowEvent, FinishedWindowEvent};
|
||||||
use windowing::{MouseWindowClickEvent, MouseWindowMouseDownEvent, MouseWindowMouseUpEvent};
|
use compositing::windowing::{MouseWindowClickEvent, MouseWindowMouseDownEvent, MouseWindowMouseUpEvent};
|
||||||
use windowing::{Forward, Back};
|
use compositing::windowing::{Forward, Back};
|
||||||
|
|
||||||
use alert::{Alert, AlertMethods};
|
use alert::{Alert, AlertMethods};
|
||||||
use libc::{c_int, c_uchar};
|
use libc::{c_int, c_uchar};
|
||||||
|
@ -18,33 +18,16 @@ use geom::point::{Point2D, TypedPoint2D};
|
||||||
use geom::scale_factor::ScaleFactor;
|
use geom::scale_factor::ScaleFactor;
|
||||||
use geom::size::TypedSize2D;
|
use geom::size::TypedSize2D;
|
||||||
use layers::geometry::DevicePixel;
|
use layers::geometry::DevicePixel;
|
||||||
use servo_msg::compositor_msg::{IdleRenderState, RenderState, RenderingRenderState};
|
use msg::compositor_msg::{IdleRenderState, RenderState, RenderingRenderState};
|
||||||
use servo_msg::compositor_msg::{FinishedLoading, Blank, ReadyState};
|
use msg::compositor_msg::{FinishedLoading, Blank, ReadyState};
|
||||||
use servo_util::geometry::ScreenPx;
|
use util::geometry::ScreenPx;
|
||||||
|
|
||||||
use glut::glut::{ACTIVE_SHIFT, DOUBLE, WindowHeight};
|
use glut::glut::{ACTIVE_SHIFT, WindowHeight};
|
||||||
use glut::glut::WindowWidth;
|
use glut::glut::WindowWidth;
|
||||||
use glut::glut;
|
use glut::glut;
|
||||||
|
|
||||||
// static THROBBER: [char, ..8] = [ '⣾', '⣽', '⣻', '⢿', '⡿', '⣟', '⣯', '⣷' ];
|
// static THROBBER: [char, ..8] = [ '⣾', '⣽', '⣻', '⢿', '⡿', '⣟', '⣯', '⣷' ];
|
||||||
|
|
||||||
/// A structure responsible for setting up and tearing down the entire windowing system.
|
|
||||||
pub struct Application;
|
|
||||||
|
|
||||||
impl ApplicationMethods for Application {
|
|
||||||
fn new() -> Application {
|
|
||||||
glut::init();
|
|
||||||
glut::init_display_mode(DOUBLE);
|
|
||||||
Application
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Drop for Application {
|
|
||||||
fn drop(&mut self) {
|
|
||||||
drop_local_window();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The type of a window.
|
/// The type of a window.
|
||||||
pub struct Window {
|
pub struct Window {
|
||||||
pub glut_window: glut::Window,
|
pub glut_window: glut::Window,
|
||||||
|
@ -61,9 +44,9 @@ pub struct Window {
|
||||||
pub throbber_frame: Cell<u8>,
|
pub throbber_frame: Cell<u8>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WindowMethods<Application> for Window {
|
impl Window {
|
||||||
/// Creates a new window.
|
/// Creates a new window.
|
||||||
fn new(_: &Application, _: bool, size: TypedSize2D<DevicePixel, uint>) -> Rc<Window> {
|
pub fn new(size: TypedSize2D<DevicePixel, uint>) -> Rc<Window> {
|
||||||
// Create the GLUT window.
|
// Create the GLUT window.
|
||||||
let window_size = size.to_untyped();
|
let window_size = size.to_untyped();
|
||||||
glut::init_window_size(window_size.width, window_size.height);
|
glut::init_window_size(window_size.width, window_size.height);
|
||||||
|
@ -145,7 +128,15 @@ impl WindowMethods<Application> for Window {
|
||||||
|
|
||||||
wrapped_window
|
wrapped_window
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Drop for Window {
|
||||||
|
fn drop(&mut self) {
|
||||||
|
drop_local_window();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl WindowMethods for Window {
|
||||||
/// Returns the size of the window in hardware pixels.
|
/// Returns the size of the window in hardware pixels.
|
||||||
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, uint> {
|
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, uint> {
|
||||||
TypedSize2D(glut::get(WindowWidth) as uint, glut::get(WindowHeight) as uint)
|
TypedSize2D(glut::get(WindowWidth) as uint, glut::get(WindowHeight) as uint)
|
23
ports/cef/Cargo.lock
generated
23
ports/cef/Cargo.lock
generated
|
@ -8,8 +8,8 @@ dependencies = [
|
||||||
"devtools 0.0.1",
|
"devtools 0.0.1",
|
||||||
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#955dbe919870b0536f79123232d87c0efe3c552e)",
|
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b)",
|
||||||
"glut 0.0.1 (git+https://github.com/servo/rust-glut#01af0162ea0322ad1a40d6adb023a39813605949)",
|
"glfw_app 0.0.1",
|
||||||
"js 0.1.0 (git+https://github.com/servo/rust-mozjs#41fb0d80a5ed5614ca13a120cdb3281e599d4e04)",
|
"js 0.1.0 (git+https://github.com/servo/rust-mozjs#41fb0d80a5ed5614ca13a120cdb3281e599d4e04)",
|
||||||
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
|
@ -44,7 +44,7 @@ dependencies = [
|
||||||
"egl 0.1.0 (git+https://github.com/servo/rust-egl#88f2a13812ddbce2bf2317221663a61c31b3e220)",
|
"egl 0.1.0 (git+https://github.com/servo/rust-egl#88f2a13812ddbce2bf2317221663a61c31b3e220)",
|
||||||
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype#0b03da276e4bdeae2300596dabc4ccb16733ad70)",
|
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype#0b03da276e4bdeae2300596dabc4ccb16733ad70)",
|
||||||
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#955dbe919870b0536f79123232d87c0efe3c552e)",
|
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b)",
|
||||||
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
||||||
"skia-sys 0.0.20130412 (git+https://github.com/servo/skia#6d696712962fd0d41120b7a414a48417da8e6a92)",
|
"skia-sys 0.0.20130412 (git+https://github.com/servo/skia#6d696712962fd0d41120b7a414a48417da8e6a92)",
|
||||||
|
@ -76,8 +76,6 @@ dependencies = [
|
||||||
"devtools_traits 0.0.1",
|
"devtools_traits 0.0.1",
|
||||||
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#955dbe919870b0536f79123232d87c0efe3c552e)",
|
|
||||||
"glut 0.0.1 (git+https://github.com/servo/rust-glut#01af0162ea0322ad1a40d6adb023a39813605949)",
|
|
||||||
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
"layout_traits 0.0.1",
|
"layout_traits 0.0.1",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
|
@ -207,7 +205,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glfw"
|
name = "glfw"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/glfw-rs?ref=servo#955dbe919870b0536f79123232d87c0efe3c552e"
|
source = "git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glfw-sys 3.0.4 (git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae)",
|
"glfw-sys 3.0.4 (git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae)",
|
||||||
"semver 0.0.1 (git+https://github.com/rust-lang/semver#d04583a173395b76c1eaa15cc630a5f6f8f0ae10)",
|
"semver 0.0.1 (git+https://github.com/rust-lang/semver#d04583a173395b76c1eaa15cc630a5f6f8f0ae10)",
|
||||||
|
@ -219,11 +217,16 @@ version = "3.0.4"
|
||||||
source = "git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae"
|
source = "git+https://github.com/servo/glfw?ref=cargo-3.0.4#65a2b4721276589d9de24f6a9999a2db37286cae"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glut"
|
name = "glfw_app"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/rust-glut#01af0162ea0322ad1a40d6adb023a39813605949"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opengles 0.1.0 (git+https://github.com/servo/rust-opengles#6776e9c07feb149d34b087039ecf6b2c143e3afc)",
|
"alert 0.1.0 (git+https://github.com/servo/rust-alert#fdc24f13be8d8a2d15214ec228d166b3221b809e)",
|
||||||
|
"compositing 0.0.1",
|
||||||
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom#90add8d65273c8a46aa16d73959e29a51d0c282d)",
|
||||||
|
"glfw 0.0.1 (git+https://github.com/servo/glfw-rs?ref=servo#a15c2d04b8969aea653841d1d79e5fdf68de664b)",
|
||||||
|
"layers 0.1.0 (git+https://github.com/servo/rust-layers#180d3ff2f28d239e32d01982c76be5c97d5763a8)",
|
||||||
|
"msg 0.0.1",
|
||||||
|
"util 0.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -428,6 +431,7 @@ dependencies = [
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
"net 0.0.1",
|
"net 0.0.1",
|
||||||
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
"url 0.1.0 (git+https://github.com/servo/rust-url#29f70a47230c2aa736e263977247c786e0b2c243)",
|
||||||
|
"util 0.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -441,6 +445,7 @@ version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"compositing 0.0.1",
|
"compositing 0.0.1",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
|
"glfw_app 0.0.1",
|
||||||
"layout 0.0.1",
|
"layout 0.0.1",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
"net 0.0.1",
|
"net 0.0.1",
|
||||||
|
|
|
@ -11,6 +11,9 @@ crate-type = ["dylib"]
|
||||||
[dependencies.servo]
|
[dependencies.servo]
|
||||||
path = "../.."
|
path = "../.."
|
||||||
|
|
||||||
|
[dependencies.glfw_app]
|
||||||
|
path = "../glfw"
|
||||||
|
|
||||||
[dependencies.plugins]
|
[dependencies.plugins]
|
||||||
path = "../../components/plugins"
|
path = "../../components/plugins"
|
||||||
|
|
||||||
|
@ -45,9 +48,6 @@ git = "https://github.com/servo/rust-geom"
|
||||||
git = "https://github.com/servo/glfw-rs"
|
git = "https://github.com/servo/glfw-rs"
|
||||||
branch = "servo"
|
branch = "servo"
|
||||||
|
|
||||||
[dependencies.glut]
|
|
||||||
git = "https://github.com/servo/rust-glut"
|
|
||||||
|
|
||||||
[dependencies.js]
|
[dependencies.js]
|
||||||
git = "https://github.com/servo/rust-mozjs"
|
git = "https://github.com/servo/rust-mozjs"
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ use azure;
|
||||||
use command_line::command_line_init;
|
use command_line::command_line_init;
|
||||||
use eutil::fptr_is_null;
|
use eutil::fptr_is_null;
|
||||||
use geom::size::TypedSize2D;
|
use geom::size::TypedSize2D;
|
||||||
|
use glfw_app;
|
||||||
use libc::{c_int, c_void};
|
use libc::{c_int, c_void};
|
||||||
use native;
|
use native;
|
||||||
use servo;
|
use servo;
|
||||||
|
@ -74,7 +75,8 @@ pub extern "C" fn cef_run_message_loop() {
|
||||||
dump_flow_tree: false,
|
dump_flow_tree: false,
|
||||||
};
|
};
|
||||||
native::start(0, 0 as *const *const u8, proc() {
|
native::start(0, 0 as *const *const u8, proc() {
|
||||||
servo::run(opts);
|
let window = Some(glfw_app::create_window(&opts));
|
||||||
|
servo::run(opts, window);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,10 +18,8 @@ extern crate servo;
|
||||||
extern crate azure;
|
extern crate azure;
|
||||||
extern crate geom;
|
extern crate geom;
|
||||||
extern crate gfx;
|
extern crate gfx;
|
||||||
#[cfg(not(target_os="android"))]
|
|
||||||
extern crate glfw;
|
extern crate glfw;
|
||||||
#[cfg(target_os="android")]
|
extern crate glfw_app;
|
||||||
extern crate glut;
|
|
||||||
extern crate js;
|
extern crate js;
|
||||||
extern crate layers;
|
extern crate layers;
|
||||||
extern crate opengles;
|
extern crate opengles;
|
||||||
|
|
30
ports/glfw/Cargo.toml
Normal file
30
ports/glfw/Cargo.toml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
[package]
|
||||||
|
name = "glfw_app"
|
||||||
|
version = "0.0.1"
|
||||||
|
authors = ["The Servo Project Developers"]
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
name = "glfw_app"
|
||||||
|
path = "lib.rs"
|
||||||
|
|
||||||
|
[dependencies.alert]
|
||||||
|
git = "https://github.com/servo/rust-alert"
|
||||||
|
|
||||||
|
[dependencies.compositing]
|
||||||
|
path = "../../components/compositing"
|
||||||
|
|
||||||
|
[dependencies.geom]
|
||||||
|
git = "https://github.com/servo/rust-geom"
|
||||||
|
|
||||||
|
[dependencies.glfw]
|
||||||
|
git = "https://github.com/servo/glfw-rs"
|
||||||
|
branch = "servo"
|
||||||
|
|
||||||
|
[dependencies.layers]
|
||||||
|
git = "https://github.com/servo/rust-layers"
|
||||||
|
|
||||||
|
[dependencies.msg]
|
||||||
|
path = "../../components/msg"
|
||||||
|
|
||||||
|
[dependencies.util]
|
||||||
|
path = "../../components/util"
|
43
ports/glfw/lib.rs
Normal file
43
ports/glfw/lib.rs
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
//! A simple application that uses GLFW to open a window for Servo to display in.
|
||||||
|
|
||||||
|
#![license = "MPL"]
|
||||||
|
#![feature(macro_rules)]
|
||||||
|
#![deny(unused_imports, unused_variable)]
|
||||||
|
|
||||||
|
extern crate alert;
|
||||||
|
extern crate compositing;
|
||||||
|
extern crate geom;
|
||||||
|
extern crate glfw;
|
||||||
|
extern crate layers;
|
||||||
|
extern crate libc;
|
||||||
|
extern crate msg;
|
||||||
|
extern crate time;
|
||||||
|
extern crate util;
|
||||||
|
|
||||||
|
use geom::scale_factor::ScaleFactor;
|
||||||
|
use std::rc::Rc;
|
||||||
|
use window::Window;
|
||||||
|
|
||||||
|
mod window;
|
||||||
|
|
||||||
|
pub fn create_window(opts: &util::opts::Opts) -> Rc<Window> {
|
||||||
|
// Initialize GLFW.
|
||||||
|
let glfw = glfw::init(glfw::LOG_ERRORS).unwrap_or_else(|_| {
|
||||||
|
// handles things like inability to connect to X
|
||||||
|
// cannot simply fail, since the runtime isn't up yet (causes a nasty abort)
|
||||||
|
println!("GLFW initialization failed");
|
||||||
|
unsafe { libc::exit(1); }
|
||||||
|
});
|
||||||
|
|
||||||
|
// Read command-line options.
|
||||||
|
let foreground = opts.output_file.is_none();
|
||||||
|
let scale_factor = opts.device_pixels_per_px.unwrap_or(ScaleFactor(1.0));
|
||||||
|
let size = opts.initial_window_size.as_f32() * scale_factor;
|
||||||
|
|
||||||
|
// Open a window.
|
||||||
|
Window::new(glfw, foreground, size.as_uint())
|
||||||
|
}
|
|
@ -4,15 +4,15 @@
|
||||||
|
|
||||||
//! A windowing implementation using GLFW.
|
//! A windowing implementation using GLFW.
|
||||||
|
|
||||||
use windowing::{ApplicationMethods, WindowEvent, WindowMethods};
|
use compositing::windowing::{WindowEvent, WindowMethods};
|
||||||
use windowing::{IdleWindowEvent, ResizeWindowEvent, LoadUrlWindowEvent, MouseWindowEventClass, MouseWindowMoveEventClass};
|
use compositing::windowing::{IdleWindowEvent, ResizeWindowEvent, LoadUrlWindowEvent, MouseWindowEventClass, MouseWindowMoveEventClass};
|
||||||
use windowing::{ScrollWindowEvent, ZoomWindowEvent, PinchZoomWindowEvent, NavigationWindowEvent, FinishedWindowEvent};
|
use compositing::windowing::{ScrollWindowEvent, ZoomWindowEvent, PinchZoomWindowEvent, NavigationWindowEvent, FinishedWindowEvent};
|
||||||
use windowing::{QuitWindowEvent, MouseWindowClickEvent, MouseWindowMouseDownEvent, MouseWindowMouseUpEvent};
|
use compositing::windowing::{QuitWindowEvent, MouseWindowClickEvent, MouseWindowMouseDownEvent, MouseWindowMouseUpEvent};
|
||||||
use windowing::RefreshWindowEvent;
|
use compositing::windowing::RefreshWindowEvent;
|
||||||
use windowing::{Forward, Back};
|
use compositing::windowing::{Forward, Back};
|
||||||
|
|
||||||
use alert::{Alert, AlertMethods};
|
use alert::{Alert, AlertMethods};
|
||||||
use libc::{exit, c_int};
|
use libc::c_int;
|
||||||
use time;
|
use time;
|
||||||
use time::Timespec;
|
use time::Timespec;
|
||||||
use std::cell::{Cell, RefCell};
|
use std::cell::{Cell, RefCell};
|
||||||
|
@ -23,35 +23,14 @@ use geom::point::{Point2D, TypedPoint2D};
|
||||||
use geom::scale_factor::ScaleFactor;
|
use geom::scale_factor::ScaleFactor;
|
||||||
use geom::size::TypedSize2D;
|
use geom::size::TypedSize2D;
|
||||||
use layers::geometry::DevicePixel;
|
use layers::geometry::DevicePixel;
|
||||||
use servo_msg::compositor_msg::{IdleRenderState, RenderState, RenderingRenderState};
|
use msg::compositor_msg::{IdleRenderState, RenderState, RenderingRenderState};
|
||||||
use servo_msg::compositor_msg::{FinishedLoading, Blank, Loading, PerformingLayout, ReadyState};
|
use msg::compositor_msg::{FinishedLoading, Blank, Loading, PerformingLayout, ReadyState};
|
||||||
use servo_util::geometry::ScreenPx;
|
use util::geometry::ScreenPx;
|
||||||
|
|
||||||
use glfw;
|
use glfw;
|
||||||
use glfw::Context;
|
use glfw::Context;
|
||||||
|
|
||||||
/// A structure responsible for setting up and tearing down the entire windowing system.
|
/// A structure responsible for setting up and tearing down the entire windowing system.
|
||||||
pub struct Application {
|
|
||||||
pub glfw: glfw::Glfw,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ApplicationMethods for Application {
|
|
||||||
fn new() -> Application {
|
|
||||||
let app = glfw::init(glfw::LOG_ERRORS);
|
|
||||||
match app {
|
|
||||||
Err(_) => {
|
|
||||||
// handles things like inability to connect to X
|
|
||||||
// cannot simply fail, since the runtime isn't up yet (causes a nasty abort)
|
|
||||||
println!("GLFW initialization failed");
|
|
||||||
unsafe { exit(1); }
|
|
||||||
}
|
|
||||||
Ok(app) => {
|
|
||||||
Application { glfw: app }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
macro_rules! glfw_callback(
|
macro_rules! glfw_callback(
|
||||||
(
|
(
|
||||||
$callback:path ($($arg:ident: $arg_ty:ty),*) $block:expr
|
$callback:path ($($arg:ident: $arg_ty:ty),*) $block:expr
|
||||||
|
@ -102,13 +81,14 @@ pub struct Window {
|
||||||
last_title_set_time: Cell<Timespec>,
|
last_title_set_time: Cell<Timespec>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WindowMethods<Application> for Window {
|
impl Window {
|
||||||
/// Creates a new window.
|
/// Creates a new window.
|
||||||
fn new(app: &Application, is_foreground: bool, size: TypedSize2D<DevicePixel, uint>) -> Rc<Window> {
|
pub fn new(glfw: glfw::Glfw, is_foreground: bool, size: TypedSize2D<DevicePixel, uint>)
|
||||||
|
-> Rc<Window> {
|
||||||
// Create the GLFW window.
|
// Create the GLFW window.
|
||||||
let window_size = size.to_untyped();
|
let window_size = size.to_untyped();
|
||||||
app.glfw.window_hint(glfw::Visible(is_foreground));
|
glfw.window_hint(glfw::Visible(is_foreground));
|
||||||
let (glfw_window, events) = app.glfw.create_window(window_size.width as u32,
|
let (glfw_window, events) = glfw.create_window(window_size.width as u32,
|
||||||
window_size.height as u32,
|
window_size.height as u32,
|
||||||
"Servo", glfw::Windowed)
|
"Servo", glfw::Windowed)
|
||||||
.expect("Failed to create GLFW window");
|
.expect("Failed to create GLFW window");
|
||||||
|
@ -116,7 +96,7 @@ impl WindowMethods<Application> for Window {
|
||||||
|
|
||||||
// Create our window object.
|
// Create our window object.
|
||||||
let window = Window {
|
let window = Window {
|
||||||
glfw: app.glfw,
|
glfw: glfw,
|
||||||
|
|
||||||
glfw_window: glfw_window,
|
glfw_window: glfw_window,
|
||||||
events: events,
|
events: events,
|
||||||
|
@ -144,7 +124,9 @@ impl WindowMethods<Application> for Window {
|
||||||
|
|
||||||
wrapped_window
|
wrapped_window
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl WindowMethods for Window {
|
||||||
/// Returns the size of the window in hardware pixels.
|
/// Returns the size of the window in hardware pixels.
|
||||||
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, uint> {
|
fn framebuffer_size(&self) -> TypedSize2D<DevicePixel, uint> {
|
||||||
let (width, height) = self.glfw_window.get_framebuffer_size();
|
let (width, height) = self.glfw_window.get_framebuffer_size();
|
|
@ -46,21 +46,23 @@ class MachCommands(CommandBase):
|
||||||
opts += ["--release"]
|
opts += ["--release"]
|
||||||
if target:
|
if target:
|
||||||
opts += ["--target", target]
|
opts += ["--target", target]
|
||||||
elif android:
|
|
||||||
opts += ["--target", "arm-linux-androideabi"]
|
|
||||||
if jobs is not None:
|
if jobs is not None:
|
||||||
opts += ["-j", jobs]
|
opts += ["-j", jobs]
|
||||||
if verbose:
|
if verbose:
|
||||||
opts += ["-v"]
|
opts += ["-v"]
|
||||||
|
|
||||||
build_start = time()
|
build_start = time()
|
||||||
|
if android:
|
||||||
|
make_opts = []
|
||||||
|
if opts:
|
||||||
|
make_opts += ["CARGO_OPTS=" + " ".join(opts)]
|
||||||
|
status = subprocess.call(
|
||||||
|
["make", "-C", "ports/android"] + make_opts,
|
||||||
|
env=self.build_env())
|
||||||
|
else:
|
||||||
status = subprocess.call(
|
status = subprocess.call(
|
||||||
["cargo", "build"] + opts,
|
["cargo", "build"] + opts,
|
||||||
env=self.build_env())
|
env=self.build_env())
|
||||||
if android:
|
|
||||||
status = status or subprocess.call(
|
|
||||||
["make", "-C", "ports/android"],
|
|
||||||
env=self.build_env())
|
|
||||||
elapsed = time() - build_start
|
elapsed = time() - build_start
|
||||||
|
|
||||||
print("Build completed in %0.2fs" % elapsed)
|
print("Build completed in %0.2fs" % elapsed)
|
||||||
|
|
35
src/lib.rs
35
src/lib.rs
|
@ -33,6 +33,8 @@ extern crate url;
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
use compositing::{CompositorChan, CompositorTask, Constellation};
|
use compositing::{CompositorChan, CompositorTask, Constellation};
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
|
use compositing::windowing::WindowMethods;
|
||||||
|
#[cfg(not(test))]
|
||||||
use servo_msg::constellation_msg::{ConstellationChan, InitLoadUrlMsg};
|
use servo_msg::constellation_msg::{ConstellationChan, InitLoadUrlMsg};
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
use script::dom::bindings::codegen::RegisterBindings;
|
use script::dom::bindings::codegen::RegisterBindings;
|
||||||
|
@ -55,36 +57,12 @@ use green::GreenTaskBuilder;
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
use std::os;
|
use std::os;
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
|
use std::rc::Rc;
|
||||||
|
#[cfg(not(test))]
|
||||||
use std::task::TaskBuilder;
|
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))]
|
#[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);
|
::servo_util::opts::set_experimental_enabled(opts.enable_experimental);
|
||||||
RegisterBindings::RegisterProxyHandlers();
|
RegisterBindings::RegisterProxyHandlers();
|
||||||
|
|
||||||
|
@ -149,7 +127,8 @@ pub fn run(opts: opts::Opts) {
|
||||||
let constellation_chan = result_port.recv();
|
let constellation_chan = result_port.recv();
|
||||||
|
|
||||||
debug!("preparing to enter main loop");
|
debug!("preparing to enter main loop");
|
||||||
CompositorTask::create(opts,
|
CompositorTask::create(window,
|
||||||
|
opts,
|
||||||
compositor_port,
|
compositor_port,
|
||||||
constellation_chan,
|
constellation_chan,
|
||||||
time_profiler_chan,
|
time_profiler_chan,
|
||||||
|
|
15
src/main.rs
15
src/main.rs
|
@ -11,6 +11,9 @@ extern crate servo;
|
||||||
extern crate native;
|
extern crate native;
|
||||||
extern crate "util" as servo_util;
|
extern crate "util" as servo_util;
|
||||||
|
|
||||||
|
#[cfg(not(test),not(target_os="android"))]
|
||||||
|
extern crate glfw_app;
|
||||||
|
|
||||||
#[cfg(not(test),not(target_os="android"))]
|
#[cfg(not(test),not(target_os="android"))]
|
||||||
use servo_util::opts;
|
use servo_util::opts;
|
||||||
|
|
||||||
|
@ -20,13 +23,19 @@ use servo::run;
|
||||||
#[cfg(not(test),not(target_os="android"))]
|
#[cfg(not(test),not(target_os="android"))]
|
||||||
use std::os;
|
use std::os;
|
||||||
|
|
||||||
#[cfg(not(test), target_os="linux")]
|
#[cfg(not(test), not(target_os="android"))]
|
||||||
#[cfg(not(test), target_os="macos")]
|
|
||||||
#[start]
|
#[start]
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
fn start(argc: int, argv: *const *const u8) -> int {
|
fn start(argc: int, argv: *const *const u8) -> int {
|
||||||
native::start(argc, argv, proc() {
|
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);
|
||||||
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue