[Bf-blender-cvs] [38af785dba0] master: Sculpt: Fix crash in dyntopo draw
Joseph Eagar
noreply at git.blender.org
Wed Oct 5 21:38:31 CEST 2022
Commit: 38af785dba0989871b5c6c258c7e748a462e2f9a
Author: Joseph Eagar
Date: Wed Oct 5 12:37:35 2022 -0700
Branches: master
https://developer.blender.org/rB38af785dba0989871b5c6c258c7e748a462e2f9a
Sculpt: Fix crash in dyntopo draw
===================================================================
M source/blender/draw/intern/draw_pbvh.cc
===================================================================
diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc
index 4170285e1d9..6b807222079 100644
--- a/source/blender/draw/intern/draw_pbvh.cc
+++ b/source/blender/draw/intern/draw_pbvh.cc
@@ -860,10 +860,30 @@ struct PBVHBatches {
const char *prefix = "a";
if (ELEM(type, CD_PROP_COLOR, CD_PROP_BYTE_COLOR)) {
+ Mesh query_mesh;
+
+ /* Check if we have args->me; if not use get_cdata to build something we
+ * can query for color attributes.
+ */
+ if (args->me) {
+ memcpy(static_cast<void *>(&query_mesh),
+ static_cast<const void *>(args->me),
+ sizeof(Mesh));
+ }
+ else {
+ BKE_id_attribute_copy_domains_temp(ID_ME,
+ get_cdata(ATTR_DOMAIN_POINT, args),
+ nullptr,
+ get_cdata(ATTR_DOMAIN_CORNER, args),
+ nullptr,
+ nullptr,
+ &query_mesh.id);
+ }
+
prefix = "c";
- CustomDataLayer *render = BKE_id_attributes_render_color_get(&args->me->id);
- CustomDataLayer *active = BKE_id_attributes_active_color_get(&args->me->id);
+ CustomDataLayer *render = BKE_id_attributes_render_color_get(&query_mesh.id);
+ CustomDataLayer *active = BKE_id_attributes_active_color_get(&query_mesh.id);
is_render = render && layer && STREQ(render->name, layer->name);
is_active = active && layer && STREQ(active->name, layer->name);
More information about the Bf-blender-cvs
mailing list