nightshade_renderer/
text_data.rs1use nalgebra_glm::{Vec2, Vec3};
4
5#[derive(Clone, Debug, Default)]
6pub struct TextMesh {
7 pub vertices: Vec<TextVertex>,
8 pub indices: Vec<u32>,
9 pub bounds: Vec2,
10}
11
12#[repr(C)]
13#[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)]
14pub struct TextVertex {
15 pub position: Vec3,
16 pub tex_coords: Vec2,
17 pub character_index: u32,
18 pub _padding: u32,
19}
20
21#[derive(
22 Clone,
23 Copy,
24 Debug,
25 Default,
26 PartialEq,
27 Eq,
28 Hash,
29 serde::Serialize,
30 serde::Deserialize,
31 enum2schema::Schema,
32)]
33#[schema(string_enum)]
34pub enum FontKind {
35 #[default]
36 Default,
37 Mono,
38 IconsMaterial,
39 IconsLucide,
40}
41
42#[derive(
43 Clone, Copy, Debug, PartialEq, serde::Serialize, serde::Deserialize, enum2schema::Schema,
44)]
45#[schema(string_enum)]
46pub enum TextAlignment {
47 Left,
48 Center,
49 Right,
50}
51
52#[derive(
53 Clone, Copy, Debug, PartialEq, serde::Serialize, serde::Deserialize, enum2schema::Schema,
54)]
55#[schema(string_enum)]
56pub enum VerticalAlignment {
57 Top,
58 Middle,
59 Bottom,
60 Baseline,
61}