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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
//! Font atlas management for Dear ImGui v1.92+
//!
//! This module provides a modern, type-safe interface to Dear ImGui's dynamic font system.
//! Key features:
//! - Dynamic glyph loading (no need to pre-specify glyph ranges)
//! - Runtime font size adjustment
//! - Custom font loaders
//! - Incremental texture updates
//!
//! Managed renderers own atlas building and texture upload. Legacy renderers must first acquire
//! [`LegacyFontAtlas`]; the common [`FontAtlas`] capability intentionally has no build or raw
//! texture-data methods:
//!
//! ```compile_fail
//! fn build_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! atlas.build();
//! }
//! ```
//!
//! ```compile_fail
//! fn query_build_state_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = atlas.is_built();
//! }
//! ```
//!
//! ```compile_fail
//! fn inspect_legacy_texture_id(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = atlas.texture_id();
//! }
//! ```
//!
//! ```compile_fail
//! fn inspect_legacy_texture_data(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = atlas.tex_data();
//! }
//! ```
//!
//! ```compile_fail
//! fn bind_legacy_texture_directly(
//! atlas: &dear_imgui_rs::FontAtlas,
//! texture: dear_imgui_rs::TextureId,
//! ) {
//! unsafe { atlas.set_texture_id(texture) };
//! }
//! ```
//!
//! ```compile_fail
//! fn clear_legacy_pixels_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! atlas.clear_tex_data();
//! }
//! ```
//!
//! Font addition is intentionally routed through [`FontSource`] so source ownership, format,
//! loader, and merge configuration are validated together. The former direct helpers and raw
//! file constructor are unavailable:
//!
//! ```compile_fail
//! fn add_with_config_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = atlas.add_font_with_config(&dear_imgui_rs::FontConfig::new());
//! }
//! ```
//!
//! ```compile_fail
//! fn add_default_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = atlas.add_font_default(None);
//! }
//! ```
//!
//! ```compile_fail
//! fn add_default_vector_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = atlas.add_font_default_vector(None);
//! }
//! ```
//!
//! ```compile_fail
//! fn add_default_bitmap_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = atlas.add_font_default_bitmap(None);
//! }
//! ```
//!
//! ```compile_fail
//! fn add_file_directly(atlas: &dear_imgui_rs::FontAtlas) {
//! let _ = unsafe { atlas.add_font_from_file_ttf("font.ttf", 16.0, None, None) };
//! }
//! ```
//!
//! ```compile_fail
//! fn add_memory_directly(atlas: &dear_imgui_rs::FontAtlas, bytes: &[u8]) {
//! let _ = unsafe { atlas.add_font_from_memory_ttf(bytes, 16.0, None, None) };
//! }
//! ```
//!
//! ```compile_fail
//! fn add_compressed_memory_directly(atlas: &dear_imgui_rs::FontAtlas, bytes: &[u8]) {
//! let _ = unsafe { atlas.add_font_from_memory_compressed_ttf(bytes, 16.0, None, None) };
//! }
//! ```
//!
//! ```compile_fail
//! fn add_base85_directly(atlas: &dear_imgui_rs::FontAtlas, bytes: &str) {
//! let _ = unsafe {
//! atlas.add_font_from_memory_compressed_base85_ttf(bytes, 16.0, None, None)
//! };
//! }
//! ```
//!
//! ```compile_fail
//! let _ = dear_imgui_rs::FontSource::ttf_file("font.ttf");
//! ```
//!
//! ```compile_fail
//! let _ = dear_imgui_rs::FontSource::ttf_file_with_size("font.ttf", 16.0);
//! ```
pub use FontConfig;
pub use FontAtlas;
pub use ;
pub use ;
pub use FontId;
pub use LegacyFontAtlas;
pub use ;
pub use SharedFontAtlas;
pub use FontSource;
pub use FontAtlasTexture;
pub use ;
pub use ;
pub use ;