[Bf-blender-cvs] [2af2dbc6ae3] hair_guides_grooming: Merge branch 'hair_guides' into hair_guides_grooming
Lukas Tönne
noreply at git.blender.org
Sat Jun 9 08:05:05 CEST 2018
Commit: 2af2dbc6ae3da9e289d0efd0662d4a4cd56ee075
Author: Lukas Tönne
Date: Sat Jun 9 06:45:31 2018 +0100
Branches: hair_guides_grooming
https://developer.blender.org/rB2af2dbc6ae3da9e289d0efd0662d4a4cd56ee075
Merge branch 'hair_guides' into hair_guides_grooming
===================================================================
===================================================================
diff --cc source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index dfe4de88c23,aaf96a47711..b2a7beb3632
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@@ -551,8 -576,7 +578,8 @@@ void DepsgraphNodeBuilder::build_object
case OB_SURF:
case OB_MBALL:
case OB_LATTICE:
+ case OB_GROOM:
- build_obdata_geom(object);
+ build_object_data_geometry(object);
/* TODO(sergey): Only for until we support granular
* update of curves.
*/
@@@ -1149,21 -1168,10 +1171,23 @@@ void DepsgraphNodeBuilder::build_object
op_node->set_as_entry();
break;
}
+
+ case OB_GROOM:
+ {
+ /* Groom evaluation operations. */
+ op_node = add_operation_node(obdata, DEG_NODE_TYPE_GEOMETRY,
+ function_bind(BKE_groom_eval_geometry,
+ _1,
+ (Groom *)obdata_cow),
+ DEG_OPCODE_PLACEHOLDER,
+ "Geometry Eval");
+ op_node->set_as_entry();
+ break;
+ }
+ default:
+ BLI_assert(!"Should not happen");
+ break;
}
-
op_node = add_operation_node(obdata, DEG_NODE_TYPE_GEOMETRY, NULL,
DEG_OPCODE_PLACEHOLDER, "Eval Done");
op_node->set_as_exit();
diff --cc source/blender/depsgraph/intern/builder/deg_builder_nodes.h
index feb59ed7e37,72aa5dbe003..0b6f9c397f8
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
@@@ -44,9 -46,10 +46,11 @@@ struct ID
struct Image;
struct FCurve;
struct Collection;
+struct Groom;
struct Key;
+ struct Lamp;
struct LayerCollection;
+ struct LightProbe;
struct Main;
struct Material;
struct Mask;
diff --cc source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 9279f3a9116,eb1ee0c1535..0b5a50d6627
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@@ -598,9 -633,8 +635,9 @@@ void DepsgraphRelationBuilder::build_ob
case OB_SURF:
case OB_MBALL:
case OB_LATTICE:
+ case OB_GROOM:
{
- build_obdata_geom(object);
+ build_object_data_geometry(object);
break;
}
case OB_ARMATURE:
@@@ -1821,43 -1903,24 +1906,37 @@@ void DepsgraphRelationBuilder::build_ob
}
break;
}
-
- case OB_SURF: /* Nurbs Surface */
- {
+ case ID_LT:
break;
- }
-
- case OB_LATTICE: /* Lattice */
- {
+ default:
+ BLI_assert(!"Should not happen");
break;
+ }
+
+ case OB_GROOM: /* Groom */
+ {
+ Groom *groom = (Groom *)obdata;
+ ComponentKey geometry_key(&groom->id, DEG_NODE_TYPE_GEOMETRY);
+
+ if (groom->scalp_object)
+ {
+ ID *scalp_id = &groom->scalp_object->id;
+ add_relation(ComponentKey(scalp_id, DEG_NODE_TYPE_GEOMETRY), geometry_key, "Scalp Object -> Groom");
+ }
+ break;
- }
}
+ }
- /* ShapeKeys */
- Key *key = BKE_key_from_object(object);
- if (key) {
- build_shapekeys(obdata, key);
+ void DepsgraphRelationBuilder::build_armature(bArmature *armature)
+ {
+ if (built_map_.checkIsBuiltAndTag(armature)) {
+ return;
}
+ build_animdata(&armature->id);
}
- /* Cameras */
- // TODO: Link scene-camera links in somehow...
- void DepsgraphRelationBuilder::build_camera(Object *object)
+ void DepsgraphRelationBuilder::build_camera(Camera *camera)
{
- Camera *camera = (Camera *)object->data;
if (built_map_.checkIsBuiltAndTag(camera)) {
return;
}
diff --cc source/blender/draw/engines/eevee/eevee_render.c
index 24a455376b8,76887145ad2..ac3ee74eaf6
--- a/source/blender/draw/engines/eevee/eevee_render.c
+++ b/source/blender/draw/engines/eevee/eevee_render.c
@@@ -143,25 -143,26 +143,26 @@@ void EEVEE_render_cache
char info[42];
BLI_snprintf(info, sizeof(info), "Syncing %s", ob->id.name + 2);
RE_engine_update_stats(engine, NULL, info);
+ bool cast_shadow = false;
- if (DRW_check_object_visible_within_active_context(ob) == false) {
- return;
+ if (ob->base_flag & BASE_VISIBLED) {
+ EEVEE_hair_cache_populate(vedata, sldata, ob, &cast_shadow);
}
- if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_GROOM)) {
- bool cast_shadow;
-
- EEVEE_materials_cache_populate(vedata, sldata, ob, &cast_shadow);
-
- if (cast_shadow) {
- EEVEE_lights_cache_shcaster_object_add(sldata, ob);
+ if (DRW_check_object_visible_within_active_context(ob)) {
- if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT)) {
++ if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_GROOM)) {
+ EEVEE_materials_cache_populate(vedata, sldata, ob, &cast_shadow);
+ }
+ else if (ob->type == OB_LIGHTPROBE) {
+ EEVEE_lightprobes_cache_add(sldata, ob);
+ }
+ else if (ob->type == OB_LAMP) {
+ EEVEE_lights_cache_add(sldata, ob);
}
}
- else if (ob->type == OB_LIGHTPROBE) {
- EEVEE_lightprobes_cache_add(sldata, ob);
- }
- else if (ob->type == OB_LAMP) {
- EEVEE_lights_cache_add(sldata, ob);
+
+ if (cast_shadow) {
+ EEVEE_lights_cache_shcaster_object_add(sldata, ob);
}
}
diff --cc source/blender/editors/space_view3d/view3d_iterators.c
index 51cc265f695,eae0cf8e459..d3e9a3f6d85
--- a/source/blender/editors/space_view3d/view3d_iterators.c
+++ b/source/blender/editors/space_view3d/view3d_iterators.c
@@@ -44,7 -42,7 +44,8 @@@
#include "BKE_displist.h"
#include "BKE_editmesh.h"
#include "BKE_context.h"
+#include "BKE_groom.h"
+ #include "BKE_mesh_runtime.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
More information about the Bf-blender-cvs
mailing list