[Bf-blender-cvs] [028c5592cd8] blender2.8: Merge branch 'master' into blender2.8
Sergey Sharybin
noreply at git.blender.org
Fri Sep 15 09:35:58 CEST 2017
Commit: 028c5592cd80469c695fba9cd5276bba354df2cd
Author: Sergey Sharybin
Date: Fri Sep 15 12:30:58 2017 +0500
Branches: blender2.8
https://developer.blender.org/rB028c5592cd80469c695fba9cd5276bba354df2cd
Merge branch 'master' into blender2.8
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/scene.c
index 151d47b0316,e8613d9ab9c..d94b4c5ad6d
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@@ -1642,7 -1917,7 +1642,7 @@@ void BKE_scene_update_tagged(Evaluation
prepare_mesh_for_viewport_render(bmain, scene);
/* flush recalc flags to dependencies */
- DEG_ids_flush_tagged(bmain, scene);
- DAG_ids_flush_tagged(bmain);
++ DEG_scene_flush_update(bmain, scene);
/* removed calls to quick_cache, see pointcache.c */
diff --cc source/blender/blenkernel/intern/sequencer.c
index 4818c7a0217,9b0db300e6d..c6b6f97b0bc
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@@ -3339,9 -3337,9 +3339,9 @@@ static ImBuf *seq_render_scene_strip(co
*/
if (!is_thread_main || is_rendering == false || is_background || context->eval_ctx->mode == DAG_EVAL_RENDER) {
if (re == NULL)
- re = RE_NewRender(scene->id.name);
+ re = RE_NewSceneRender(scene);
- BKE_scene_update_for_newframe(context->eval_ctx, context->bmain, scene, scene->lay);
+ BKE_scene_update_for_newframe(context->eval_ctx, context->bmain, scene);
RE_BlenderFrame(re, context->bmain, scene, NULL, camera, scene->lay, frame, false);
/* restore previous state after it was toggled on & off by RE_BlenderFrame */
diff --cc source/blender/depsgraph/intern/depsgraph_tag.cc
index 7bea24d9fd8,5adcb3a11b3..41724100b51
--- a/source/blender/depsgraph/intern/depsgraph_tag.cc
+++ b/source/blender/depsgraph/intern/depsgraph_tag.cc
@@@ -432,14 -271,24 +432,24 @@@ void DEG_id_type_tag(Main *bmain, shor
/* Recursively push updates out to all nodes dependent on this,
* until all affected are tagged and/or scheduled up for eval
*/
- void DEG_ids_flush_tagged(Main *bmain, Scene *scene)
+ void DEG_ids_flush_tagged(Main *bmain)
{
- /* TODO(sergey): Only visible scenes? */
- if (scene->depsgraph_legacy != NULL) {
- DEG::deg_graph_flush_updates(
- bmain,
- reinterpret_cast<DEG::Depsgraph *>(scene->depsgraph_legacy));
+ for (Scene *scene = (Scene *)bmain->scene.first;
+ scene != NULL;
+ scene = (Scene *)scene->id.next)
+ {
+ DEG_scene_flush_update(bmain, scene);
+ }
+ }
+
+ void DEG_scene_flush_update(Main *bmain, Scene *scene)
+ {
- if (scene->depsgraph == NULL) {
++ if (scene->depsgraph_legacy == NULL) {
+ return;
}
+ DEG::deg_graph_flush_updates(
+ bmain,
- reinterpret_cast<DEG::Depsgraph *>(scene->depsgraph));
++ reinterpret_cast<DEG::Depsgraph *>(scene->depsgraph_legacy));
}
/* Update dependency graph when visible scenes/layers changes. */
diff --cc source/blender/editors/render/render_internal.c
index f915fd5ec64,26c863d8514..212d6128a9e
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@@ -307,8 -305,7 +307,8 @@@ static int screen_render_exec(bContext
return OPERATOR_CANCELLED;
}
- re = RE_NewRender(scene->id.name);
+ re = RE_NewSceneRender(scene);
+ RE_SetDepsgraph(re, CTX_data_depsgraph(C));
lay_override = (v3d && v3d->lay != scene->lay) ? v3d->lay : 0;
G.is_break = false;
diff --cc source/blender/editors/space_image/image_draw.c
index fed1d3ce38c,8cb23c9e021..8ef9e24c6d4
--- a/source/blender/editors/space_image/image_draw.c
+++ b/source/blender/editors/space_image/image_draw.c
@@@ -90,7 -87,8 +90,7 @@@ static void draw_render_info(const bCon
float zoomx,
float zoomy)
{
- Render *re = RE_GetRender(scene->id.name);
- RenderResult *rr;
+ Render *re = RE_GetSceneRender(scene);
RenderData *rd = RE_engine_get_render_data(re);
Scene *stats_scene = ED_render_job_get_scene(C);
if (stats_scene == NULL) {
diff --cc source/blender/editors/transform/transform_conversions.c
index 9f682a5be9a,ca49cde4b7a..53ce7943669
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@@ -5602,13 -5605,16 +5602,16 @@@ static void set_trans_object_base_flags
}
}
+ /* all recalc flags get flushed to all layers, so a layer flip later on works fine */
- DAG_scene_flush_update(G.main, t->scene, -1, 0);
++ DEG_scene_flush_update(G.main, t->scene);
+
/* and we store them temporal in base (only used for transform code) */
/* this because after doing updates, the object->recalc is cleared */
- for (base = scene->base.first; base; base = base->next) {
+ for (base = sl->object_bases.first; base; base = base->next) {
if (base->object->recalc & OB_RECALC_OB)
- base->flag |= BA_HAS_RECALC_OB;
+ base->flag_legacy |= BA_HAS_RECALC_OB;
if (base->object->recalc & OB_RECALC_DATA)
- base->flag |= BA_HAS_RECALC_DATA;
+ base->flag_legacy |= BA_HAS_RECALC_DATA;
}
}
@@@ -5679,7 -5684,8 +5682,8 @@@ static int count_proportional_objects(T
/* all recalc flags get flushed to all layers, so a layer flip later on works fine */
- DAG_scene_relations_update(G.main, t->scene);
- DAG_scene_flush_update(G.main, t->scene, -1, 0);
+ DEG_scene_relations_update(G.main, t->scene);
++ DEG_scene_flush_update(G.main, t->scene);
/* and we store them temporal in base (only used for transform code) */
/* this because after doing updates, the object->recalc is cleared */
diff --cc source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
index 50fe2162bda,9c478c203e7..322acd9966c
--- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
+++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
@@@ -951,9 -957,7 +951,9 @@@ Render *BlenderStrokeRenderer::RenderSc
}
#endif
- Render *freestyle_render = RE_NewRender(freestyle_scene->id.name);
+ Render *freestyle_render = RE_NewSceneRender(freestyle_scene);
+ DEG_scene_relations_update(freestyle_bmain, freestyle_scene);
+ freestyle_render->depsgraph = freestyle_scene->depsgraph_legacy;
RE_RenderFreestyleStrokes(freestyle_render, freestyle_bmain, freestyle_scene,
render && get_stroke_count() > 0);
diff --cc source/blender/makesrna/intern/rna_main_api.c
index d980916aeec,871f50e992e..c8c1c7be280
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@@ -1846,64 -1923,4 +1951,68 @@@ void RNA_def_main_linestyles(BlenderRN
RNA_def_property_boolean_funcs(prop, "rna_Main_linestyle_is_updated_get", NULL);
}
+void RNA_def_main_workspaces(BlenderRNA *brna, PropertyRNA *cprop)
+{
+ StructRNA *srna;
+ FunctionRNA *func;
+ PropertyRNA *parm;
+ PropertyRNA *prop;
+
+ RNA_def_property_srna(cprop, "BlendDataWorkSpaces");
+ srna = RNA_def_struct(brna, "BlendDataWorkSpaces", NULL);
+ RNA_def_struct_sdna(srna, "Main");
+ RNA_def_struct_ui_text(srna, "Main Workspaces", "Collection of workspaces");
+
+ func = RNA_def_function(srna, "tag", "rna_Main_workspaces_tag");
+ parm = RNA_def_boolean(func, "value", 0, "Value", "");
+ RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
+
+ prop = RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_boolean_funcs(prop, "rna_Main_workspaces_is_updated_get", NULL);
+}
+
+void RNA_def_main_lightprobes(BlenderRNA *brna, PropertyRNA *cprop)
+{
+ StructRNA *srna;
+ FunctionRNA *func;
+ PropertyRNA *parm;
+ PropertyRNA *prop;
+
+ RNA_def_property_srna(cprop, "BlendDataProbes");
+ srna = RNA_def_struct(brna, "BlendDataProbes", NULL);
+ RNA_def_struct_sdna(srna, "Main");
+ RNA_def_struct_ui_text(srna, "Main Light Probes", "Collection of light probes");
+
+ func = RNA_def_function(srna, "new", "rna_Main_lightprobe_new");
+ RNA_def_function_ui_description(func, "Add a new probe to the main database");
+ parm = RNA_def_string(func, "name", "Probe", 0, "", "New name for the data-block");
+ RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
+ /* return type */
+ parm = RNA_def_pointer(func, "lightprobe", "LightProbe", "", "New light probe data-block");
+ RNA_def_function_return(func, parm);
+
+ func = RNA_def_function(srna, "remove", "rna_Main_ID_remove");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ RNA_def_function_ui_description(func, "Remove a probe from the current blendfile");
+ parm = RNA_def_pointer(func, "lightprobe", "LightProbe", "", "Probe to remove");
+ RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
+ RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
+ RNA_def_boolean(func, "do_unlink", true, "",
+ "Unlink all usages of this probe before deleting it "
+ "(WARNING: will also delete objects instancing that light probe data)");
++ RNA_def_boolean(func, "do_id_user", true, "",
++ "Decrement user counter of all datablocks used by this light probe");
++ RNA_def_boolean(func, "do_ui_user", true, "",
++ "Make sure interface does not reference this light probe");
+
+ func = RNA_def_function(srna, "tag", "rna_Main_lightprobes_tag");
+ parm = RNA_def_boolean(func, "value", 0, "Value", "");
+ RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
+
+ prop = RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_boolean_funcs(prop, "rna_Main_lightprobes_is_updated_get", NULL);
+}
+
#endif
More information about the Bf-blender-cvs
mailing list