summaryrefslogtreecommitdiff
path: root/camera.c
diff options
context:
space:
mode:
Diffstat (limited to 'camera.c')
-rw-r--r--camera.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/camera.c b/camera.c
index 12f37eb..439c596 100644
--- a/camera.c
+++ b/camera.c
@@ -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;