[Bf-blender-cvs] [6a8c9ec7633] temp-sculpt-colors: temp-sculpt-colors: Make requested changes
Joseph Eagar
noreply at git.blender.org
Sat Jan 29 02:47:18 CET 2022
Commit: 6a8c9ec763375340d795030e9ba00f82f9c27286
Author: Joseph Eagar
Date: Fri Jan 28 17:47:00 2022 -0800
Branches: temp-sculpt-colors
https://developer.blender.org/rB6a8c9ec763375340d795030e9ba00f82f9c27286
temp-sculpt-colors: Make requested changes
===================================================================
M release/datafiles/locale
M release/scripts/addons
M release/scripts/addons_contrib
M source/blender/blenkernel/BKE_attribute.h
M source/blender/blenkernel/intern/attribute.c
M source/blender/blenkernel/intern/paint.c
M source/blender/blenkernel/intern/pbvh.c
M source/blender/blenloader/intern/versioning_300.c
M source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
M source/blender/draw/intern/draw_cache_impl_mesh.c
M source/blender/draw/intern/mesh_extractors/extract_mesh.h
M source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_vcol.cc
M source/blender/editors/geometry/geometry_attributes.cc
M source/blender/editors/sculpt_paint/sculpt.c
M source/blender/editors/sculpt_paint/sculpt_undo.c
M source/blender/gpu/GPU_buffers.h
M source/blender/gpu/intern/gpu_buffers.c
M source/blender/windowmanager/intern/wm_toolsystem.c
M source/tools
===================================================================
diff --git a/release/datafiles/locale b/release/datafiles/locale
index 620b85f16d0..93612eddc7c 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 620b85f16d03a6aadd7cae56969c9c29b06b992d
+Subproject commit 93612eddc7cdfa82d1e7c31c362df0988388629b
diff --git a/release/scripts/addons b/release/scripts/addons
index 6afec05c328..9207696bbfa 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 6afec05c3286cdea58ab269fb8dd1f5de011de4e
+Subproject commit 9207696bbfac648c299f29f031ab5f18d8fa0077
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 7936dde9ece..61e45814503 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 7936dde9ece881d531b1a2ee6c45ddb56d30038c
+Subproject commit 61e45814503f51963c91c51aaf764612e7c5dc72
diff --git a/source/blender/blenkernel/BKE_attribute.h b/source/blender/blenkernel/BKE_attribute.h
index 80d14fc31cd..ae7eadd7628 100644
--- a/source/blender/blenkernel/BKE_attribute.h
+++ b/source/blender/blenkernel/BKE_attribute.h
@@ -50,7 +50,7 @@ typedef enum AttributeDomain {
ATTR_DOMAIN_NUM
} AttributeDomain;
-typedef enum {
+typedef enum AttributeDomainMask {
ATTR_DOMAIN_MASK_POINT = (1 << 0),
ATTR_DOMAIN_MASK_EDGE = (1 << 1),
ATTR_DOMAIN_MASK_FACE = (1 << 2),
@@ -63,8 +63,11 @@ typedef enum {
bool BKE_id_attributes_supported(struct ID *id);
-/* list_mask restricts unique name check to certain customdata types,
- if in doubt just pass CD_MASK_PROP_ALL */
+/** Create a new attribute layer
+ *
+ * \param list_mask restricts unique name check to certain customdata types,
+ * if in doubt just pass CD_MASK_PROP_ALL
+ */
struct CustomDataLayer *BKE_id_attribute_new(struct ID *id,
const char *name,
int type,
@@ -97,9 +100,9 @@ void BKE_id_attributes_active_set(struct ID *id, struct CustomDataLayer *layer);
int *BKE_id_attributes_active_index_p(struct ID *id);
CustomData *BKE_id_attributes_iterator_next_domain(struct ID *id, struct CustomDataLayer *layers);
-CustomDataLayer *BKE_id_attribute_from_index(const struct ID *id,
- int lookup_index,
- const AttributeDomainMask domain_mask);
+const CustomDataLayer *BKE_id_attribute_from_index(const struct ID *id,
+ int lookup_index,
+ const AttributeDomainMask domain_mask);
struct AttributeRef *BKE_id_attributes_active_color_ref_p(struct ID *id);
void BKE_id_attributes_active_color_set(struct ID *id, struct CustomDataLayer *active_layer);
diff --git a/source/blender/blenkernel/intern/attribute.c b/source/blender/blenkernel/intern/attribute.c
index 50c69f26537..44e24d53e7f 100644
--- a/source/blender/blenkernel/intern/attribute.c
+++ b/source/blender/blenkernel/intern/attribute.c
@@ -457,9 +457,9 @@ CustomData *BKE_id_attributes_iterator_next_domain(ID *id, CustomDataLayer *laye
return NULL;
}
-CustomDataLayer *BKE_id_attribute_from_index(const ID *id,
- int lookup_index,
- const AttributeDomainMask domain_mask)
+const CustomDataLayer *BKE_id_attribute_from_index(const ID *id,
+ int lookup_index,
+ const AttributeDomainMask domain_mask)
{
DomainInfo info[ATTR_DOMAIN_NUM];
get_domains(id, info);
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index 96d484b7d78..4e6c5ca937c 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -1806,11 +1806,10 @@ void BKE_sculpt_color_layer_create_if_needed(struct Object *object)
bool has_color = false;
for (int i = 0; i < ARRAY_SIZE(types); i++) {
- bool ok = CustomData_has_layer(&orig_me->vdata, types[i]) ||
- CustomData_has_layer(&orig_me->ldata, types[i]);
+ has_color = CustomData_has_layer(&orig_me->vdata, types[i]) ||
+ CustomData_has_layer(&orig_me->ldata, types[i]);
- if (ok) {
- has_color = true;
+ if (has_color) {
break;
}
}
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index 922d8ae7810..e5423043efd 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -1246,28 +1246,21 @@ static int pbvh_get_buffers_update_flags(PBVH *UNUSED(pbvh))
bool BKE_pbvh_get_color_layer(const Mesh *me, CustomDataLayer **r_layer, AttributeDomain *r_attr)
{
CustomDataLayer *layer = BKE_id_attributes_active_color_get((ID *)me);
- AttributeDomain domain;
if (!layer || !ELEM(layer->type, CD_PROP_COLOR, CD_MLOOPCOL)) {
return false;
}
- domain = BKE_id_attribute_domain((ID *)me, layer);
+ AttributeDomain domain = BKE_id_attribute_domain((ID *)me, layer);
if (!ELEM(domain, ATTR_DOMAIN_POINT, ATTR_DOMAIN_CORNER)) {
return false;
}
- if (layer) {
- *r_layer = layer;
- *r_attr = domain;
+ *r_layer = layer;
+ *r_attr = domain;
- return true;
- }
- else {
- *r_layer = NULL;
- return false;
- }
+ return true;
}
static void pbvh_update_draw_buffer_cb(void *__restrict userdata,
@@ -1337,7 +1330,8 @@ static void pbvh_update_draw_buffer_cb(void *__restrict userdata,
pbvh->face_sets_color_seed,
pbvh->face_sets_color_default,
update_flags);
- } break;
+ break;
+ }
case PBVH_BMESH:
GPU_pbvh_bmesh_buffers_update(node->draw_buffers,
pbvh->bm,
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index b5a383164aa..071520a068c 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -1,4 +1,4 @@
-/*
+ /*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
@@ -2373,6 +2373,7 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
+ /* rebuild active/render color attribute references*/
if (!MAIN_VERSION_ATLEAST(bmain, 301, 5)) {
LISTBASE_FOREACH (Mesh *, me, &bmain->meshes) {
for (int step = 0; step < 2; step++) {
diff --git a/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c b/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
index ea06e21e26e..5abb69f6955 100644
--- a/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
+++ b/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
@@ -459,9 +459,12 @@ MeshRenderData *mesh_render_data_create(Mesh *me,
mr->edit_bmesh = me->edit_mesh;
mr->me = (do_final) ? me->edit_mesh->mesh_eval_final : me->edit_mesh->mesh_eval_cage;
- /* needed so correct vcol layer is shown in edit mode */
mr->me->attributes_active_index = me->attributes_active_index;
+ /* needed so correct vcol layer is shown in edit mode */
+ mr->me->attr_color_active = me->attr_color_active;
+ mr->me->attr_color_render = me->attr_color_render;
+
mr->edit_data = is_mode_active ? mr->me->runtime.edit_data : NULL;
if (mr->edit_data) {
diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c
index 5dbeb6a30d5..a68a6188c2c 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.c
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.c
@@ -471,29 +471,29 @@ static bool mesh_cd_calc_active_vcol_layer(Mesh *me, DRW_MeshAttributes *attrs_u
const CustomData *cd_vdata = mesh_cd_vdata_get_from_mesh(me_final);
const CustomData *cd_ldata = mesh_cd_ldata_get_from_mesh(me_final);
- int type, idx = -1;
+ int type, layer_i = -1;
AttributeDomain domain;
if (layer && ELEM(layer->type, CD_PROP_COLOR, CD_MLOOPCOL)) {
domain = BKE_id_attribute_domain((ID *)me, layer);
type = layer->type;
- idx = CustomData_get_named_layer(
+ layer_i = CustomData_get_named_layer(
domain == ATTR_DOMAIN_POINT ? cd_vdata : cd_ldata, type, layer->name);
}
else {
- idx = CustomData_get_active_layer(cd_vdata, CD_PROP_COLOR);
+ layer_i = CustomData_get_active_layer(cd_vdata, CD_PROP_COLOR);
type = CD_PROP_COLOR;
domain = ATTR_DOMAIN_POINT;
}
- if (idx != -1) {
+ if (layer_i != -1) {
if (type != CD_MLOOPCOL) {
- drw_mesh_attributes_add_request(attrs_used, type, idx, domain);
+ drw_mesh_attributes_add_request(attrs_used, type, layer_i, domain);
}
}
- return idx != -1;
+ return layer_i != -1;
}
static void mesh_cd_calc_active_mloopcol_layer(const Mesh *me, DRW_MeshCDMask *cd_used)
@@ -678,7 +678,7 @@ static DRW_MeshCDMask mesh_cd_calc_used_gpu_layers(const Mesh *me,
break;
}
- /* note that attr->type will always be CD_PROP_COLOR event for
+ /* note that attr->type will always be CD_PROP_COLOR even for
CD_MLOOPCOL layers, see node_shader_gpu_vertex_color in
node_shader_vertex_color.cc
*/
@@ -729,17 +729,17 @@ static DRW_MeshCDMask mesh_cd_calc_used_gpu_layers(const Mesh *me,
BLI_strncpy(ref.name, clayer->name, sizeof(ref.name));
ref.type = clayer->type;
- int idx = (uint)mesh_cd_get_vcol_i(me, cd_vdata, cd_ldata, &ref);
+ int layer_i = mesh_cd_get_vcol_i(cd_vdata, cd_ldata, &ref);
- if (idx >= 0) {
- cd_used.vcol |= 1UL << (uint)idx;
+ if (layer_i >= 0) {
+ cd_used.vcol |= 1UL << (uint)layer_i;
}
}
else {
- int idx = (uint
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list