[Bf-blender-cvs] [57efef26359] master: Fix generating geometry icons for meshes without vertex colors
Campbell Barton
noreply at git.blender.org
Tue Jan 31 06:47:30 CET 2023
Commit: 57efef2635910de33bd6844e57fce22028985c84
Author: Campbell Barton
Date: Tue Jan 31 16:45:33 2023 +1100
Branches: master
https://developer.blender.org/rB57efef2635910de33bd6844e57fce22028985c84
Fix generating geometry icons for meshes without vertex colors
===================================================================
M release/datafiles/blender_icons_geom.py
===================================================================
diff --git a/release/datafiles/blender_icons_geom.py b/release/datafiles/blender_icons_geom.py
index 878cc4b46f6..45447892700 100644
--- a/release/datafiles/blender_icons_geom.py
+++ b/release/datafiles/blender_icons_geom.py
@@ -121,10 +121,14 @@ def object_child_map(objects):
def mesh_data_lists_from_mesh(me, material_colors):
me_loops = me.loops[:]
- me_loops_color = me.attributes.active_color.data[:]
me_verts = me.vertices[:]
me_polys = me.polygons[:]
+ if me.attributes.active_color:
+ me_loops_color = me_loops_color_active.data[:]
+ else:
+ me_loops_color = None
+
tris_data = []
for p in me_polys:
@@ -138,7 +142,8 @@ def mesh_data_lists_from_mesh(me, material_colors):
l_sta = p.loop_start
l_len = p.loop_total
loops_poly = me_loops[l_sta:l_sta + l_len]
- color_poly = me_loops_color[l_sta:l_sta + l_len]
+ if me_loops_color is not None:
+ color_poly = me_loops_color[l_sta:l_sta + l_len]
i0 = 0
i1 = 1
@@ -150,9 +155,12 @@ def mesh_data_lists_from_mesh(me, material_colors):
l1 = loops_poly[i1]
l2 = loops_poly[i2]
- c0 = color_poly[i0]
- c1 = color_poly[i1]
- c2 = color_poly[i2]
+ if me_loops_color is not None:
+ c0 = color_poly[i0].color
+ c1 = color_poly[i1].color
+ c2 = color_poly[i2].color
+ else:
+ c0 = c1 = c2 = (1.0, 1.0, 1.0, 1.0)
v0 = me_verts[l0.vertex_index]
v1 = me_verts[l1.vertex_index]
@@ -186,7 +194,7 @@ def color_multiply_and_from_linear_to_srgb(base_color, vertex_color):
The final color is the product between the base color and the vertex color.
"""
import mathutils
- color_linear = [c * b for c, b in zip(vertex_color.color, base_color)]
+ color_linear = [c * b for c, b in zip(vertex_color, base_color)]
color_srgb = mathutils.Color(color_linear[:3]).from_scene_linear_to_srgb()
return tuple(round(c * 255) for c in (*color_srgb, color_linear[3]))
More information about the Bf-blender-cvs
mailing list