1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
//! Rendering primitives and software surface baseline.
//!
//! # Coordinate System
//!
//! This module uses the framework's standard **screen coordinate system** with origin at **top-left**:
//!
//! - **X axis**: Increases from left to right (0 → width)
//! - **Y axis**: Increases from top to bottom (0 → height)
//!
//! All rendering operations (drawing text, shapes, images) expect coordinates in this system.
//! The rendering context automatically handles any necessary transformations when working with
//! widgets or other components that may use different coordinate systems internally.
//!
//! ## Drawing Operations
//!
//! - `draw_text()`: Draws text at the specified (x, y) position
//! - `draw_line()`: Draws a line from (x1, y1) to (x2, y2)
//! - `draw_rect()`: Draws a rectangle outline
//! - `fill_rect()`: Fills a rectangle with a solid color
//! - `draw_image()`: Draws an image at the specified position
//!
//! All coordinates are in logical pixels and use the screen coordinate system.
//!
//! # Module Structure (feature-layered)
//!
//! | Group | Path | Contents |
//! |-------|------|---------|
//! | **gpu** | `gpu/` | GPU-accelerated rendering traits and capability enums (gated behind `gpu-wgpu`) |
//! | **core** | `core/` | Data types (`TextMetrics`, `TextCluster`, `ShapedText`) and commands (`RenderCommand`) |
//! | **backend** | `backend/` | Rendering backends: software surface (`BackBuffer`, `SoftwareSurface`, `RenderContext`), paint trait (`PaintBackend`, `SoftwarePaintBackend`), batch (`BatchId`), scene (`SceneLayer`, `RenderScene`) |
//! | **pipeline** | `pipeline/` | Visual command pipeline for all widget types (controls, containers, dialogs, special, etc.) |
//! | **web** | `web/` | Web engine and web view rendering |
//! | **quality** | `quality/` | Adaptive rendering quality management |
//! | flat | `text_cache.rs` | Text caching utilities |
// ─── Sub-module declarations ─────────────────────────────────────────────────
// Core data types and commands
// Rendering backends
// (controls/ directory was migrated to pipeline/special.rs — see pipeline module)
// Visual command pipeline for all widget types
// Web rendering
// Types (WebEngine, WebView) are re-exported below for use by the render pipeline.
// The web module no longer has dead_code gating; all types are properly wired.
// Projection/presentation-mode rendering (BLUE8 P4-5b, gated behind `projection`)
// GPU-accelerated rendering backend
// SVG rendering backend
// Adaptive quality
// Text caching
// Text shaping (pre-layout measurement)
// Rich text rendering (multi-span styled text)
// Text overflow handling (ellipsis, clip, multi-line clamp)
// Unicode grapheme cluster support (emoji, combining marks, ZWJ)
// ─── Re-exports ──────────────────────────────────────────────────────────────
// Core
pub use ;
// SVG
pub use SvgPaintBackend;
// Backend
pub use ;
pub use ;
pub use software_render_config_test_lock;
// Pixel ops
pub use ;
// Text shaping
pub use ;
// Rich text
pub use ;
// Text overflow
pub use ;
// Grapheme support
pub use ;
// GPU — re-export only when feature is active
pub use ;
// Projection types
pub use ;
/// Web rendering types — available on desktop targets
pub use WebEngine;
pub use WebView;
/// Shared helper accessible to surface.rs and backend
pub use pixel_bytes_len;