summaryrefslogtreecommitdiffstats
path: root/glow/src/settings.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-05-19 14:23:28 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-05-19 14:23:28 +0200
commitd4743183d40c6044ce6fa39e2a52919a32912cda (patch)
treed2dec81cd9b419262cf2aa57ad793895ccacb320 /glow/src/settings.rs
parent33448508a524db6447b380cc236be6f0d5ca8a86 (diff)
downloadiced-d4743183d40c6044ce6fa39e2a52919a32912cda.tar.gz
iced-d4743183d40c6044ce6fa39e2a52919a32912cda.tar.bz2
iced-d4743183d40c6044ce6fa39e2a52919a32912cda.zip
Draft first working version of `iced_glow` :tada:
Diffstat (limited to 'glow/src/settings.rs')
-rw-r--r--glow/src/settings.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/glow/src/settings.rs b/glow/src/settings.rs
new file mode 100644
index 00000000..bffc867e
--- /dev/null
+++ b/glow/src/settings.rs
@@ -0,0 +1,50 @@
+//! Configure a [`Renderer`].
+//!
+//! [`Renderer`]: struct.Renderer.html
+
+/// The settings of a [`Renderer`].
+///
+/// [`Renderer`]: ../struct.Renderer.html
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+pub struct Settings {
+ /// The bytes of the font that will be used by default.
+ ///
+ /// If `None` is provided, a default system font will be chosen.
+ pub default_font: Option<&'static [u8]>,
+
+ /// The antialiasing strategy that will be used for triangle primitives.
+ pub antialiasing: Option<Antialiasing>,
+}
+
+impl Default for Settings {
+ fn default() -> Settings {
+ Settings {
+ default_font: None,
+ antialiasing: None,
+ }
+ }
+}
+
+/// An antialiasing strategy.
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+pub enum Antialiasing {
+ /// Multisample AA with 2 samples
+ MSAAx2,
+ /// Multisample AA with 4 samples
+ MSAAx4,
+ /// Multisample AA with 8 samples
+ MSAAx8,
+ /// Multisample AA with 16 samples
+ MSAAx16,
+}
+
+impl Antialiasing {
+ pub(crate) fn sample_count(self) -> u32 {
+ match self {
+ Antialiasing::MSAAx2 => 2,
+ Antialiasing::MSAAx4 => 4,
+ Antialiasing::MSAAx8 => 8,
+ Antialiasing::MSAAx16 => 16,
+ }
+ }
+}