summaryrefslogtreecommitdiffstats
path: root/graphics/src/viewport.rs
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/src/viewport.rs')
-rw-r--r--graphics/src/viewport.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/graphics/src/viewport.rs b/graphics/src/viewport.rs
new file mode 100644
index 00000000..48e5a249
--- /dev/null
+++ b/graphics/src/viewport.rs
@@ -0,0 +1,33 @@
+use crate::Transformation;
+
+/// A viewing region for displaying computer graphics.
+#[derive(Debug)]
+pub struct Viewport {
+ width: u32,
+ height: u32,
+ transformation: Transformation,
+}
+
+impl Viewport {
+ /// Creates a new [`Viewport`] with the given dimensions.
+ pub fn new(width: u32, height: u32) -> Viewport {
+ Viewport {
+ width,
+ height,
+ transformation: Transformation::orthographic(width, height),
+ }
+ }
+
+ pub fn height(&self) -> u32 {
+ self.height
+ }
+
+ /// Returns the dimensions of the [`Viewport`].
+ pub fn dimensions(&self) -> (u32, u32) {
+ (self.width, self.height)
+ }
+
+ pub fn transformation(&self) -> Transformation {
+ self.transformation
+ }
+}