aboutsummaryrefslogtreecommitdiff
path: root/viewport.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2024-01-30 12:01:01 +0000
committerrodri <rgl@antares-labs.eu>2024-01-30 12:01:01 +0000
commit37da5f0a27740bb43bac67a2eb98f725beca975e (patch)
tree2e403bbd2f477e65c8b82f10e950721b4103c895 /viewport.c
parentdf792cbb5cf94abf0d286ebfd73bad9714dce509 (diff)
downloadlibgraphics-37da5f0a27740bb43bac67a2eb98f725beca975e.tar.gz
libgraphics-37da5f0a27740bb43bac67a2eb98f725beca975e.tar.bz2
libgraphics-37da5f0a27740bb43bac67a2eb98f725beca975e.zip
import the new renderer and clean things up.
i integrated the renderer i've been developing on the tinyrend repo and got rid of a bunch of stuff that's no longer necessary. also began structuring things to fit the new interface i have in mind. there are still some artifacts with the projection xforms that cause issues with clipping and division by zero.
Diffstat (limited to 'viewport.c')
-rw-r--r--viewport.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/viewport.c b/viewport.c
new file mode 100644
index 0000000..81e1653
--- /dev/null
+++ b/viewport.c
@@ -0,0 +1,29 @@
+#include <u.h>
+#include <libc.h>
+#include <thread.h>
+#include <draw.h>
+#include <memdraw.h>
+#include <geometry.h>
+#include "libobj/obj.h"
+#include "graphics.h"
+#include "internal.h"
+
+Viewport *
+mkviewport(Rectangle r)
+{
+ Viewport *v;
+
+ v = emalloc(sizeof *v);
+ v->p = Pt2(0,0,1);
+ v->bx = Vec2(1,0);
+ v->by = Vec2(0,1);
+ v->fbctl = mkfbctl(r);
+ return v;
+}
+
+void
+rmviewport(Viewport *v)
+{
+ rmfbctl(v->fbctl);
+ free(v);
+}