54 lines
1.1 KiB
Rust
54 lines
1.1 KiB
Rust
mod activity;
|
|
mod api;
|
|
mod app;
|
|
mod binding;
|
|
mod block;
|
|
mod clipboard;
|
|
mod developer_tools;
|
|
mod display_list;
|
|
mod document;
|
|
mod endor_host;
|
|
mod endor_script;
|
|
mod event_dispatch;
|
|
mod events;
|
|
mod geometry;
|
|
mod io_tasks;
|
|
mod layout;
|
|
mod mount;
|
|
mod native_visual;
|
|
mod object_list;
|
|
mod presentation;
|
|
mod protocols;
|
|
mod scene;
|
|
mod scroll;
|
|
mod snapshot;
|
|
mod software_renderer;
|
|
mod source_hit;
|
|
mod source_layout;
|
|
mod source_paint;
|
|
mod sources;
|
|
mod system_ui;
|
|
mod tabs;
|
|
mod tasks;
|
|
mod text;
|
|
mod ui_bridge;
|
|
mod vm_sequence;
|
|
mod window;
|
|
|
|
use std::sync::{Arc, RwLock};
|
|
|
|
use anyhow::Result;
|
|
use app::{AppEvent, TesseraApp};
|
|
use document::NamespaceState;
|
|
use winit::event_loop::{ControlFlow, EventLoop};
|
|
|
|
fn main() -> Result<()> {
|
|
let event_loop = EventLoop::<AppEvent>::with_user_event().build()?;
|
|
event_loop.set_control_flow(ControlFlow::Wait);
|
|
let namespace = Arc::new(RwLock::new(NamespaceState::default()));
|
|
let activity = api::start(namespace.clone(), event_loop.create_proxy())?;
|
|
let mut app = TesseraApp::new(namespace, activity, event_loop.create_proxy())?;
|
|
event_loop.run_app(&mut app)?;
|
|
app.exit_result()
|
|
}
|