Orange: new pipeline separated calculus for window matrix from converting
authorTon Roosendaal <ton@blender.org>
Wed, 25 Jan 2006 15:09:17 +0000 (15:09 +0000)
committerTon Roosendaal <ton@blender.org>
Wed, 25 Jan 2006 15:09:17 +0000 (15:09 +0000)
data to renderdata. However, if a camera has a lens-ipo, this has to be
calculated correctly each time.

Actually, render system suffers like Blender itself from a weak time
system... which still is polluted by confusing globals. Should all work
now, but definitely needs attention later.

source/blender/render/intern/source/initrender.c
source/blender/render/intern/source/pipeline.c

index a6abe396d4892d48082f82a5c1f9950d905ffd89..786f720fddc0d02a7756d7d340a46f51cbda22a9 100644 (file)
@@ -435,7 +435,13 @@ void RE_SetCamera(Render *re, Object *camera)
                
                if(cam->type==CAM_ORTHO) re->r.mode |= R_ORTHO;
                
+               /* solve this too... all time depending stuff is in convertblender.c? */
+               if(cam->ipo) {
+                       calc_ipo(cam->ipo, frame_to_float(re->r.cfra));
+                       execute_ipo(&cam->id, cam->ipo);
+               }
                lens= cam->lens;
+
                clipsta= cam->clipsta;
                clipend= cam->clipend;
        }
index 5d35ef85e40c5bf3ce5d304699f967a93935c67f..baef27761ed64fa711813887dcb4f7b0259f4e00 100644 (file)
@@ -935,10 +935,11 @@ void RE_BlenderAnim(Render *re, Scene *scene, int sfra, int efra)
        if(!render_initialize_from_scene(re, scene))
           return;
        
+       /* confusing... scene->r or re->r? make a decision once! */
        if(BKE_imtype_is_movie(scene->r.imtype))
-               mh->start_movie(&G.scene->r, re->rectx, re->recty);
+               mh->start_movie(&scene->r, re->rectx, re->recty);
        
-       for(scene->r.cfra= sfra; scene->r.cfra<=efra; G.scene->r.cfra++) {
+       for(scene->r.cfra= sfra; scene->r.cfra<=efra; scene->r.cfra++) {
                re->r.cfra= scene->r.cfra;      /* weak.... */
                
                do_render_final(re, scene);