mirror of
https://github.com/servo/servo
synced 2026-04-25 17:15:48 +02:00
For a long time, the "Compositor" hasn't done any compositing. This is handled by WebRender. In addition the "Compositor" does many other tasks. This change renames `IOCompositor` to `Paint`. `Paint` is Servo's paint subsystem and contains multiple `Painter`s. This change does not rename the crate; that will be done in a followup change. Testing: This just renames types and updates comments, so no new tests are necessary. --------- Signed-off-by: Martin Robinson <mrobinson@igalia.com>
53 lines
2.3 KiB
Rust
53 lines
2.3 KiB
Rust
/* 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 https://mozilla.org/MPL/2.0/. */
|
|
|
|
//! The `servoshell` test application.
|
|
//!
|
|
//! Creates a `Servo` instance with a example implementation of a working
|
|
//! web browser.
|
|
//!
|
|
//! This browser's implementation of `WindowMethods` is built on top
|
|
//! of [winit], the cross-platform windowing library.
|
|
//!
|
|
//! For the engine itself look next door in `components/servo/lib.rs`.
|
|
//!
|
|
//! [winit]: https://github.com/rust-windowing/winit
|
|
|
|
// Normally, rust uses the "Console" Windows subsystem, which pops up a console
|
|
// when running an application. Switching to the "Windows" subsystem prevents
|
|
// this, but also hides debugging output. We mitigate this by attempting to
|
|
// attach to the console of the parent process.
|
|
#![windows_subsystem = "windows"]
|
|
|
|
#[cfg(target_os = "windows")]
|
|
use windows_sys::Win32::System::Console;
|
|
|
|
fn main() {
|
|
#[cfg(target_os = "windows")]
|
|
// SAFETY: No safety related side effects or requirements.
|
|
unsafe {
|
|
// When servo is started from the commandline, we still want output
|
|
// to be printed. Due to us using the `windows` subsystem, this doesn't
|
|
// work out-of-the-box, and we need to manually attempt to attach to
|
|
// the console of the parent process. If servo was not started from
|
|
// the commandline, then the call will fail, which we can ignore.
|
|
let _result = Console::AttachConsole(Console::ATTACH_PARENT_PROCESS);
|
|
}
|
|
cfg_if::cfg_if! {
|
|
if #[cfg(not(any(target_os = "android", target_env = "ohos")))] {
|
|
servoshell::main()
|
|
} else {
|
|
// Android: see ports/servoshell/egl/android/mod.rs.
|
|
// OpenHarmony: see ports/servoshell/egl/ohos/mod.rs.
|
|
println!(
|
|
"Cannot run the servoshell `bin` executable on platforms such as \
|
|
Android or OpenHarmony. On these platforms you need to compile \
|
|
the servoshell library as a `cdylib` and integrate it with the \
|
|
platform app code into an `apk` (android) or `hap` (OpenHarmony).\
|
|
For Android `mach build` will do these steps automatically for you."
|
|
);
|
|
}
|
|
}
|
|
}
|