diff options
author | rodri <rgl@antares-labs.eu> | 2024-01-30 12:01:01 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-01-30 12:01:01 +0000 |
commit | 37da5f0a27740bb43bac67a2eb98f725beca975e (patch) | |
tree | 2e403bbd2f477e65c8b82f10e950721b4103c895 /alloc.c | |
parent | df792cbb5cf94abf0d286ebfd73bad9714dce509 (diff) | |
download | libgraphics-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 'alloc.c')
-rw-r--r-- | alloc.c | 51 |
1 files changed, 51 insertions, 0 deletions
@@ -0,0 +1,51 @@ +#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" + +void * +emalloc(ulong n) +{ + void *p; + + p = malloc(n); + if(p == nil) + sysfatal("malloc: %r"); + setmalloctag(p, getcallerpc(&n)); + return p; +} + +void * +erealloc(void *p, ulong n) +{ + void *np; + + np = realloc(p, n); + if(np == nil){ + if(n == 0) + return nil; + sysfatal("realloc: %r"); + } + if(p == nil) + setmalloctag(np, getcallerpc(&p)); + else + setrealloctag(np, getcallerpc(&p)); + return np; +} + +Memimage * +eallocmemimage(Rectangle r, ulong chan) +{ + Memimage *i; + + i = allocmemimage(r, chan); + if(i == nil) + sysfatal("allocmemimage: %r"); + memfillcolor(i, DTransparent); + return i; +} |