diff options
-rw-r--r-- | camera.c | 24 | ||||
-rw-r--r-- | graphics.h | 3 | ||||
-rw-r--r-- | util.c | 2 |
3 files changed, 21 insertions, 8 deletions
@@ -96,22 +96,34 @@ verifycfg(Camera *c) } Camera * -Cam(Rectangle vr, Renderer *r, Projection p, double fov, double n, double f) +Camv(Viewport *v, Renderer *r, Projection p, double fov, double n, double f) { Camera *c; - c = newcamera(); - c->view = mkviewport(vr); - if(c->view == nil){ - werrstr("mkviewport: %r"); + if(v == nil || r == nil) return nil; - } + + c = newcamera(); + c->view = v; c->rctl = r; configcamera(c, p, fov, n, f); return c; } Camera * +Cam(Rectangle vr, Renderer *r, Projection p, double fov, double n, double f) +{ + Viewport *v; + + v = mkviewport(vr); + if(v == nil){ + werrstr("mkviewport: %r"); + return nil; + } + return Camv(v, r, p, fov, n, f); +} + +Camera * newcamera(void) { Camera *c; @@ -368,6 +368,7 @@ struct Camera }; /* camera */ +Camera *Camv(Viewport*, Renderer*, Projection, double, double, double); Camera *Cam(Rectangle, Renderer*, Projection, double, double, double); Camera *newcamera(void); void delcamera(Camera*); @@ -443,7 +444,7 @@ Point2 maxpt2(Point2, Point2); Point3 modulapt3(Point3, Point3); Point3 minpt3(Point3, Point3); Point3 maxpt3(Point3, Point3); -Memimage *rgb(ulong); +Memimage *rgba(ulong); Memimage *dupmemimage(Memimage*); /* color */ @@ -101,7 +101,7 @@ memsetl(void *dp, ulong v, usize len) } Memimage * -rgb(ulong c) +rgba(ulong c) { Memimage *i; |