1#![deny(
7 missing_docs,
8 clippy::unwrap_used,
9 rustdoc::broken_intra_doc_links,
10 rustdoc::invalid_rust_codeblocks,
11 rustdoc::invalid_html_tags
12)]
13
14extern crate self as tessera_ui;
15
16#[doc(hidden)]
17pub mod __private;
18pub mod accessibility;
19#[cfg(target_os = "android")]
20pub mod android;
21pub mod asset;
22mod build_tree;
23pub mod clip;
24pub mod clipboard;
25pub mod color;
26mod component_call;
27mod dispatcher;
28mod graphics;
29mod work;
30
31pub use dispatcher::UiDispatcher;
32pub use graphics::{
33 FrameBuffer, GraphicsDevice, GraphicsWork, GraphicsWorkDiagnostics, ScratchFit, ScratchTexture,
34 ScratchTextureDescriptor, TrackedBuffer,
35};
36pub use work::{FrameWork, WorkExecution, WorkPhase, WorkTotals};
37
38mod session;
39pub mod system_back;
40
41pub use session::{RuntimeSession, RuntimeSessionGuard, RuntimeSessionId, WeakRuntimeSession};
42
43pub(crate) use session::{local_runtime_resource, runtime_resource};
44
45mod component_tree;
46pub mod context;
47mod cursor;
48pub mod dp;
49pub mod entry_point;
50pub mod entry_registry;
51mod execution_context;
52pub mod focus;
53pub mod geometry;
54#[cfg(all(feature = "headless", not(target_family = "wasm")))]
55pub mod headless;
56mod ime_state;
57mod inline_set;
58mod keyboard_state;
59pub mod layout;
60pub mod modifier;
61pub mod nested_scroll;
62pub(crate) mod pipeline_cache;
63pub mod pipeline_context;
64pub mod plugin;
65#[cfg(feature = "profiling")]
66pub mod profiler;
67mod prop;
68pub mod px;
69mod read_dependencies;
70mod render_graph;
71pub mod render_module;
72mod render_pass;
73pub mod render_scene;
74pub mod renderer;
75mod runtime;
76pub mod scroll;
77#[cfg(any(test, feature = "testing"))]
78pub mod testing;
79mod thread_utils;
80pub mod time;
81
82pub use accesskit;
83pub use indextree::{Arena, NodeId};
84pub use tessera_macros::{entry, lint, tessera};
85pub use wgpu;
86pub use winit;
87
88pub use crate::{
89 accessibility::{AccessibilityActionHandler, AccessibilityId, AccessibilityNode},
90 asset::{Asset, FontAsset, LoadState, Resource, Source},
91 clip::{ClipRegion, ClipShape, ui_stencil_state},
92 clipboard::{
93 ClipboardAction, ClipboardInput, ClipboardInputModifierNode, ClipboardResponse,
94 ClipboardWrite, request_clipboard_action,
95 },
96 color::Color,
97 component_tree::{
98 AxisConstraint, ComponentTree, ComputedData, Constraint, ImeInput, ImeInputHandlerFn,
99 ImeRequest, ImeSession, KeyboardInput, KeyboardInputHandlerFn, MeasurementError,
100 ParentConstraint, PointerEventPass, PointerInput, PointerInputHandlerFn,
101 },
102 context::{Context, provide_context, use_context},
103 cursor::{
104 CursorEventContent, GestureState, MOUSE_POINTER_ID, PointerChange, PointerId,
105 PressKeyEventType, ScrollDeltaUnit, ScrollEventContent, ScrollEventSource,
106 },
107 dp::Dp,
108 entry_point::EntryPoint,
109 entry_registry::{EntryRegistry, TesseraPackage},
110 focus::{
111 FocusDirection, FocusGroupNode, FocusManager, FocusProperties, FocusRequester,
112 FocusRestorationTarget, FocusScopeNode, FocusState, FocusTraversalPolicy,
113 FocusTraversalStrategy,
114 },
115 geometry::{FloatRect, LayoutCoordinates, LocalToWindow, scaled_box},
116 keyboard_state::KeyboardEvent,
117 layout::{
118 DefaultLayoutNode, DrawModifierHandle, LayoutModifierHandle, LayoutResult,
119 NoopDrawModifier, RenderInput, RenderMetadataMut,
120 },
121 modifier::{
122 BuildModifierNode, CursorModifierExt, CursorModifierNode, DrawModifierContent,
123 DrawModifierContext, DrawModifierNode, FocusModifierExt, ImeInputModifierNode,
124 KeyboardInputModifierNode, LayoutModifierChild, LayoutModifierInput, LayoutModifierNode,
125 Modifier, ModifierBuildContext, ParentDataMap, ParentDataModifierNode,
126 PlacementModifierNode, PointerInputModifierNode, SemanticsModifierNode,
127 },
128 pipeline_context::PipelineContext,
129 plugin::{
130 DesktopPlatformContext, DesktopWindowAction, Plugin, PluginContext, PluginResult,
131 register_plugin, register_plugin_boxed, try_with_plugin, try_with_plugin_mut, with_plugin,
132 with_plugin_mut,
133 },
134 prop::{Callback, CallbackWith, RenderSlot, RenderSlotWith, Slot},
135 px::{Px, PxPosition, PxRect, PxSize},
136 render_graph::{DrawGeometry, RenderFragment, RenderFragmentOp, RenderGraph, RenderGraphOp},
137 render_module::RenderModule,
138 render_scene::{Command, DrawRegion, PaddingRect, SampleRegion},
139 renderer::{
140 Renderer,
141 compute::{self, ComputablePipeline, ComputeCommand, ComputePipelineRegistry},
142 core::OffscreenReadbackError,
143 drawer::{self, DrawCommand, DrawablePipeline, PipelineRegistry, command},
144 },
145 runtime::{
146 FrameClockDiagnostics, FrameNanosControl, State, StateOwner, current_frame_nanos,
147 current_frame_time, frame_delta, key, receive_frame_nanos, remember, remember_with_key,
148 retain, retain_with_key,
149 },
150 scroll::{PlatformScrollConfig, normalize_platform_scroll_delta, platform_scroll_config},
151 thread_utils::SendSync,
152};
153
154use ime_state::ImeState;
155
156#[cfg(all(feature = "headless", not(target_family = "wasm")))]
157pub use crate::headless::{
158 HEADLESS_ENV, HEADLESS_FRAME_TIME_MS_ENV, HEADLESS_HEIGHT_ENV, HEADLESS_WIDTH_ENV,
159 HeadlessConfig, HeadlessError, HeadlessRenderer, encode_png_rgba, headless_mode_requested,
160 run_headless, write_png_file,
161};
162
163#[cfg(target_os = "android")]
164pub use {jni, ndk_context, ndk_sys};
165
166pub mod window_insets;
168pub use window_insets::{Insets, WindowInsets, WindowInsetsController};