#![deny(unsafe_code)]
use std::rc::Rc;
use compositing_traits::{CompositorProxy, CompositorReceiver, ConstellationMsg};
use crossbeam_channel::Sender;
use profile_traits::{mem, time};
use webrender::RenderApi;
use webrender_api::DocumentId;
use webrender_traits::RenderingContext;
pub use crate::compositor::{CompositeTarget, IOCompositor, ShutdownState};
#[macro_use]
mod tracing;
mod compositor;
mod gl;
mod touch;
pub mod webview;
pub mod windowing;
pub struct InitialCompositorState {
pub sender: CompositorProxy,
pub receiver: CompositorReceiver,
pub constellation_chan: Sender<ConstellationMsg>,
pub time_profiler_chan: time::ProfilerChan,
pub mem_profiler_chan: mem::ProfilerChan,
pub webrender: webrender::Renderer,
pub webrender_document: DocumentId,
pub webrender_api: RenderApi,
pub rendering_context: RenderingContext,
pub webrender_gl: Rc<dyn gleam::gl::Gl>,
#[cfg(feature = "webxr")]
pub webxr_main_thread: webxr::MainThreadRegistry,
}