Skip to main content

mraphics_core/constants/
mod.rs

1use crate::render::GadgetIndex;
2
3// Built-in colors
4mod colors;
5pub use colors::*;
6
7// Common resolutions
8pub const RESOLUTION_4K: (u32, u32) = (3840, 2160);
9pub const RESOLUTION_1080P: (u32, u32) = (1920, 1080);
10pub const RESOLUTION_720P: (u32, u32) = (1280, 720);
11pub const RESOLUTION_480P: (u32, u32) = (854, 480);
12pub const RESOLUTION_360P: (u32, u32) = (640, 360);
13
14// Primitive topologies
15#[derive(Debug, Clone, Copy, PartialEq, Eq)]
16pub enum PrimitiveTopology {
17    PointList,
18    LineList,
19    LineStrip,
20    TriangleList,
21    TriangleStrip,
22}
23
24impl PrimitiveTopology {
25    pub fn to_wgpu(&self) -> wgpu::PrimitiveTopology {
26        match self {
27            PrimitiveTopology::PointList => wgpu::PrimitiveTopology::PointList,
28            PrimitiveTopology::LineList => wgpu::PrimitiveTopology::LineList,
29            PrimitiveTopology::LineStrip => wgpu::PrimitiveTopology::LineStrip,
30            PrimitiveTopology::TriangleList => wgpu::PrimitiveTopology::TriangleList,
31            PrimitiveTopology::TriangleStrip => wgpu::PrimitiveTopology::TriangleStrip,
32        }
33    }
34
35    pub fn to_str(&self) -> &str {
36        match self {
37            PrimitiveTopology::PointList => "point-list",
38            PrimitiveTopology::LineList => "line-list",
39            PrimitiveTopology::LineStrip => "line-strip",
40            PrimitiveTopology::TriangleList => "triangle-list",
41            PrimitiveTopology::TriangleStrip => "triangle-strip",
42        }
43    }
44}
45
46// Built-in gadgets
47pub const VIEW_MAT_LABEL: &'static str = "mraphics-view-mat";
48pub const VIEW_MAT_INDEX: GadgetIndex = GadgetIndex {
49    group_index: 0,
50    binding_index: 0,
51};
52
53pub const PROJECTION_MAT_LABEL: &'static str = "mraphics-projection-mat";
54pub const PROJECTION_MAT_INDEX: GadgetIndex = GadgetIndex {
55    group_index: 0,
56    binding_index: 1,
57};
58
59pub const MODEL_MAT_LABEL: &'static str = "mraphics-model-mat";
60pub const MODEL_MAT_INDEX: GadgetIndex = GadgetIndex {
61    group_index: 1,
62    binding_index: 0,
63};
64
65pub const POSITION_ATTR_LABEL: &'static str = "mraphics-position-attribute";
66pub const POSITION_ATTR_INDEX: GadgetIndex = GadgetIndex {
67    group_index: 1,
68    binding_index: 1,
69};
70
71pub const INDEX_BUFFER_LABEL: &'static str = "mraphics-index-buffer";
72
73pub const COLOR_ATTR_LABEL: &'static str = "mraphics-color-attribute";
74pub const COLOR_ATTR_INDEX: GadgetIndex = GadgetIndex {
75    group_index: 1,
76    binding_index: 2,
77};