aboutsummaryrefslogtreecommitdiff
path: root/internal.h
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 /internal.h
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 'internal.h')
-rw-r--r--internal.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/internal.h b/internal.h
new file mode 100644
index 0000000..a6b7a96
--- /dev/null
+++ b/internal.h
@@ -0,0 +1,29 @@
+typedef struct Deco Deco;
+struct Deco
+{
+ int pfd[2];
+ int infd;
+ char *prog;
+};
+
+/* alloc */
+void *emalloc(ulong);
+void *erealloc(void*, ulong);
+Memimage *eallocmemimage(Rectangle, ulong);
+
+/* fb */
+Framebuf *mkfb(Rectangle);
+void rmfb(Framebuf*);
+Framebufctl *mkfbctl(Rectangle);
+void rmfbctl(Framebufctl*);
+
+/* render */
+void shade(Framebuf *fb, OBJ *model, Memimage *modeltex, Shader *s, ulong nprocs);
+
+/* util */
+int min(int, int);
+int max(int, int);
+void memsetd(double*, double, usize);
+
+/* nanosec */
+uvlong nanosec(void);