[Bf-blender-cvs] [b8bbefb2029] soc-2021-curves: Merge 'master' into soc-2021-curves branch
dilithjay
noreply at git.blender.org
Sat Jul 24 19:12:04 CEST 2021
Commit: b8bbefb2029e3bb36b51c7f78469bd1cf65aa770
Author: dilithjay
Date: Fri Jul 23 23:30:51 2021 +0530
Branches: soc-2021-curves
https://developer.blender.org/rBb8bbefb2029e3bb36b51c7f78469bd1cf65aa770
Merge 'master' into soc-2021-curves branch
===================================================================
M source/blender/blenkernel/intern/mesh_convert.c
M source/blender/blenkernel/intern/object_update.c
M source/blender/compositor/intern/COM_Debug.cc
M source/blender/compositor/intern/COM_Debug.h
M source/blender/editors/transform/transform_convert_mesh.c
M source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
===================================================================
diff --git a/source/blender/blenkernel/intern/mesh_convert.c b/source/blender/blenkernel/intern/mesh_convert.c
index 8d67e8fd33b..0e4fe91e577 100644
--- a/source/blender/blenkernel/intern/mesh_convert.c
+++ b/source/blender/blenkernel/intern/mesh_convert.c
@@ -213,19 +213,18 @@ static void make_edges_mdata_extend(
/* Initialize mverts, medges and, faces for converting nurbs to mesh and derived mesh */
/* use specified dispbase */
-int BKE_mesh_nurbs_displist_to_mdata(const Object *ob,
- const ListBase *dispbase,
- MVert **r_allvert,
- int *r_totvert,
- MEdge **r_alledge,
- int *r_totedge,
- MLoop **r_allloop,
- MPoly **r_allpoly,
- MLoopUV **r_alluv,
- int *r_totloop,
- int *r_totpoly)
+static int mesh_nurbs_displist_to_mdata(const Curve *cu,
+ const ListBase *dispbase,
+ MVert **r_allvert,
+ int *r_totvert,
+ MEdge **r_alledge,
+ int *r_totedge,
+ MLoop **r_allloop,
+ MPoly **r_allpoly,
+ MLoopUV **r_alluv,
+ int *r_totloop,
+ int *r_totpoly)
{
- const Curve *cu = ob->data;
MVert *mvert;
MPoly *mpoly;
MLoop *mloop;
diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c
index ff7acf3fa5f..7e15ac5de5d 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -388,36 +388,12 @@ void BKE_object_batch_cache_dirty_tag(Object *ob)
BKE_object_data_batch_cache_dirty_tag(ob->data);
}
-void BKE_object_data_eval_batch_cache_dirty_tag(Depsgraph *depsgraph, ID *object_data)
-{
- DEG_debug_print_eval(depsgraph, __func__, object_data->name, object_data);
- BKE_object_data_batch_cache_dirty_tag(object_data);
-}
-
-void BKE_object_data_eval_batch_cache_deform_tag(Depsgraph *depsgraph, ID *object_data)
-{
- DEG_debug_print_eval(depsgraph, __func__, object_data->name, object_data);
- switch (GS(object_data->name)) {
- case ID_ME:
- BKE_mesh_batch_cache_dirty_tag((Mesh *)object_data, BKE_MESH_BATCH_DIRTY_DEFORM);
- break;
- default:
- /* Only mesh is currently supported. Fallback to dirty all for other datablocks types. */
- BKE_object_data_batch_cache_dirty_tag(object_data);
- break;
- }
-}
-
-void BKE_object_batch_cache_dirty_tag(Object *ob)
-{
- BKE_object_data_batch_cache_dirty_tag(ob->data);
-}
-
void BKE_object_eval_uber_data(Depsgraph *depsgraph, Scene *scene, Object *ob)
{
DEG_debug_print_eval(depsgraph, __func__, ob->id.name, ob);
BLI_assert(ob->type != OB_ARMATURE);
BKE_object_handle_data_update(depsgraph, scene, ob);
+ BKE_object_batch_cache_dirty_tag(ob);
}
void BKE_object_eval_ptcache_reset(Depsgraph *depsgraph, Scene *scene, Object *object)
@@ -529,4 +505,4 @@ void BKE_object_eval_eval_base_flags(Depsgraph *depsgraph,
BLI_assert(base_orig->object != NULL);
base_orig->flag = base->flag;
}
-}
\ No newline at end of file
+}
diff --git a/source/blender/compositor/intern/COM_Debug.cc b/source/blender/compositor/intern/COM_Debug.cc
index 4d43ab1c6c6..c0460aed4a4 100644
--- a/source/blender/compositor/intern/COM_Debug.cc
+++ b/source/blender/compositor/intern/COM_Debug.cc
@@ -52,7 +52,7 @@ std::string DebugInfo::m_current_node_name;
std::string DebugInfo::m_current_op_name;
DebugInfo::GroupStateMap DebugInfo::m_group_states;
-static std::string operation_class_name(NodeOperation *op)
+static std::string operation_class_name(const NodeOperation *op)
{
std::string full_name = typeid(*op).name();
/* Remove name-spaces. */
diff --git a/source/blender/compositor/intern/COM_Debug.h b/source/blender/compositor/intern/COM_Debug.h
index fe2262efcec..23d99c7e529 100644
--- a/source/blender/compositor/intern/COM_Debug.h
+++ b/source/blender/compositor/intern/COM_Debug.h
@@ -30,6 +30,9 @@ namespace blender::compositor {
static constexpr bool COM_EXPORT_GRAPHVIZ = false;
static constexpr bool COM_GRAPHVIZ_SHOW_NODE_NAME = false;
+/* Saves operations results to image files. */
+static constexpr bool COM_EXPORT_OPERATION_BUFFERS = false;
+
class Node;
class ExecutionSystem;
class ExecutionGroup;
@@ -121,6 +124,14 @@ class DebugInfo {
}
};
+ static void operation_rendered(const NodeOperation *op, MemoryBuffer *render)
+ {
+ /* Don't export constant operations as there are too many and it's rarely useful. */
+ if (COM_EXPORT_OPERATION_BUFFERS && render && !render->is_a_single_elem()) {
+ export_operation(op, render);
+ }
+ }
+
static void graphviz(const ExecutionSystem *system, StringRefNull name = "");
protected:
diff --git a/source/blender/editors/transform/transform_convert_mesh.c b/source/blender/editors/transform/transform_convert_mesh.c
index 04957c393b3..f31abe22d2a 100644
--- a/source/blender/editors/transform/transform_convert_mesh.c
+++ b/source/blender/editors/transform/transform_convert_mesh.c
@@ -1964,242 +1964,204 @@ static void tc_mesh_partial_types_calc(TransInfo *t, struct PartialTypeState *r_
partial_for_normals = PARTIAL_TYPE_ALL;
}
}
- else {
- /* See the body of the comments in the previous block for details. */
- verts_mask = BLI_BITMAP_NEW(em->bm->totvert, __func__);
- int i;
- TransData *td;
- for (i = 0, td = tc->data; i < tc->data_len; i++, td++) {
- if (td->factor == 0.0f) {
- continue;
- }
- const BMVert *v = (BMVert *)td->extra;
- const int v_index = BM_elem_index_get(v);
- BLI_assert(!BLI_BITMAP_TEST(verts_mask, v_index));
- BLI_BITMAP_ENABLE(verts_mask, v_index);
- verts_mask_count += 1;
- }
-
- r_partial_state->for_looptri = partial_for_looptri;
- r_partial_state->for_normals = partial_for_normals;
- }
- static void tc_mesh_partial_update(
- TransInfo * t, TransDataContainer * tc, const struct PartialTypeState *partial_state)
- {
- BMEditMesh *em = BKE_editmesh_from_object(tc->obedit);
+ r_partial_state->for_looptri = partial_for_looptri;
+ r_partial_state->for_normals = partial_for_normals;
+}
- struct TransCustomDataMesh *tcmd = tc_mesh_customdata_ensure(tc);
+static void tc_mesh_partial_update(TransInfo *t,
+ TransDataContainer *tc,
+ const struct PartialTypeState *partial_state)
+{
+ BMEditMesh *em = BKE_editmesh_from_object(tc->obedit);
- const struct PartialTypeState *partial_state_prev = &tcmd->partial_update_state_prev;
+ struct TransCustomDataMesh *tcmd = tc_mesh_customdata_ensure(tc);
- /* Promote the partial update types based on the previous state
- * so the values that no longer modified are reset before being left as-is.
- * Needed for translation which can toggle snap-to-normal during transform. */
- const enum ePartialType partial_for_looptri = MAX2(partial_state->for_looptri,
- partial_state_prev->for_looptri);
- const enum ePartialType partial_for_normals = MAX2(partial_state->for_normals,
- partial_state_prev->for_normals);
+ const struct PartialTypeState *partial_state_prev = &tcmd->partial_update_state_prev;
- if ((partial_for_looptri == PARTIAL_TYPE_ALL) && (partial_for_normals == PARTIAL_TYPE_ALL) &&
- (em->bm->totvert == em->bm->totvertsel)) {
- /* The additional cost of generating the partial connectivity data isn't justified
- * when all data needs to be updated.
- *
- * While proportional editing can cause all geometry to need updating with a partial
- * selection. It's impractical to calculate this ahead of time. Further, the down side of
- * using partial updates when their not needed is negligible. */
- BKE_editmesh_looptri_and_normals_calc(em);
- }
- else {
- if (partial_for_looptri != PARTIAL_NONE) {
- BMPartialUpdate *bmpinfo = tc_mesh_partial_ensure(t, tc, partial_for_looptri);
- BKE_editmesh_looptri_calc_with_partial_ex(em,
- bmpinfo,
- &(const struct BMeshCalcTessellation_Params){
- .face_normals = true,
- });
- }
+ /* Promote the partial update types based on the previous state
+ * so the values that no longer modified are reset before being left as-is.
+ * Needed for translation which can toggle snap-to-normal during transform. */
+ const enum ePartialType partial_for_looptri = MAX2(partial_state->for_looptri,
+ partial_state_prev->for_looptri);
+ const enum ePartialType partial_for_normals = MAX2(partial_state->for_normals,
+ partial_state_prev->for_normals);
- if (partial_for_normals != PARTIAL_NONE) {
- BMPartialUpdate *bmpinfo = tc_mesh_partial_ensure(t, tc, partial_for_normals);
- /* While not a large difference, take advantage of existing normals where possible. */
- const bool face_normals = !((partial_for_looptri == PARTIAL_TYPE_ALL) ||
- ((partial_for_looptri == PARTIAL_TYPE_GROUP) &&
- (partial_for_normals == PARTIAL_TYPE_GROUP)));
- BM_mesh_normals_update_with_partial_ex(em->bm,
- bmpinfo,
- &(const struct BMeshNormalsUpdate_
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list