[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56721] trunk/blender/source/blender: Viewport Render Internal:
Ton Roosendaal
ton at blender.org
Sun May 12 19:16:43 CEST 2013
Revision: 56721
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56721
Author: ton
Date: 2013-05-12 17:16:43 +0000 (Sun, 12 May 2013)
Log Message:
-----------
Viewport Render Internal:
Animated characters were not rendering yet, the render code for it
caused a signal for re-draw and re-render, in eternal loop.
Solved by forcing viewport render to use the same derivedmesh data
as for 3d viewport drawing. Faster too.
Modified Paths:
--------------
trunk/blender/source/blender/editors/render/render_internal.c
trunk/blender/source/blender/render/intern/source/convertblender.c
Modified: trunk/blender/source/blender/editors/render/render_internal.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_internal.c 2013-05-12 17:14:01 UTC (rev 56720)
+++ trunk/blender/source/blender/editors/render/render_internal.c 2013-05-12 17:16:43 UTC (rev 56721)
@@ -1008,7 +1008,6 @@
engine->flag |= RE_ENGINE_DO_UPDATE;
// if (update)
// printf("changed ma %d res %d view %d\n", update & PR_UPDATE_MATERIAL, update & PR_UPDATE_RENDERSIZE, update & PR_UPDATE_VIEW);
-
}
return update;
Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c 2013-05-12 17:14:01 UTC (rev 56720)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c 2013-05-12 17:16:43 UTC (rev 56721)
@@ -3379,7 +3379,10 @@
mask |= CD_MASK_ORIGINDEX | CD_MASK_FREESTYLE_EDGE | CD_MASK_FREESTYLE_FACE;
#endif
- dm= mesh_create_derived_render(re->scene, ob, mask);
+ if (re->r.scemode & R_PREVIEWBUTS)
+ dm = mesh_get_derived_final(re->scene, ob, mask);
+ else
+ dm= mesh_create_derived_render(re->scene, ob, mask);
if (dm==NULL) return; /* in case duplicated object fails? */
if (mask & CD_MASK_ORCO) {
@@ -4686,7 +4689,10 @@
/* the emitter mesh wasn't rendered so the modifier stack wasn't
* evaluated with render settings */
DerivedMesh *dm;
- dm = mesh_create_derived_render(re->scene, ob, CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
+ if (re->r.scemode & R_PREVIEWBUTS)
+ dm = mesh_get_derived_final(re->scene, ob, CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
+ else
+ dm = mesh_create_derived_render(re->scene, ob, CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
dm->release(dm);
}
@@ -4972,7 +4978,10 @@
/* this is to make sure we get render level duplis in groups:
* the derivedmesh must be created before init_render_mesh,
* since object_duplilist does dupliparticles before that */
- dm = mesh_create_derived_render(re->scene, ob, CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
+ if (re->r.scemode & R_PREVIEWBUTS)
+ dm = mesh_get_derived_final(re->scene, ob, CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
+ else
+ dm = mesh_create_derived_render(re->scene, ob, CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
dm->release(dm);
for (psys=ob->particlesystem.first; psys; psys=psys->next)
More information about the Bf-blender-cvs
mailing list