@@ -6,9 +6,6 @@
#pragma once
-#if PY_VERSION_HEX < 0x030a0000
-# error "Python 3.10 or greater is required, you'll need to update your Python."
-#endif
#ifdef __cplusplus
extern "C" {
@@ -960,20 +960,6 @@
endif()
if(WITH_PYTHON)
- # While we have this as an '#error' in 'bpy_capi_utils.h',
- # upgrading Python tends to cause confusion for users who build.
- # Give the error message early to make this more obvious.
- #
- # Do this before main 'platform_*' checks,
- # because UNIX will search for the old Python paths which may not exist.
- # giving errors about missing paths before this case is met.
- if(DEFINED PYTHON_VERSION AND "${PYTHON_VERSION}" VERSION_LESS "3.10")
- message(
- FATAL_ERROR
- "At least Python 3.10 is required to build, but found Python ${PYTHON_VERSION}"
- )
- endif()
-
file(GLOB RESULT "${CMAKE_SOURCE_DIR}/release/scripts/addons")
list(LENGTH RESULT DIR_LEN)
if(DIR_LEN EQUAL 0)
@@ -75,8 +75,8 @@
x = 0x345678UL;
i = 0;
while (--len >= 0) {
- y = _Py_HashDouble(NULL, (double)(array[i++]));
+ y = _Py_HashDouble((double)(array[i++]));
if (y == -1) {
return -1;
}
@@ -389,7 +389,6 @@
OK_OP(BINARY_TRUE_DIVIDE),
OK_OP(INPLACE_FLOOR_DIVIDE),
OK_OP(INPLACE_TRUE_DIVIDE),
- OK_OP(GET_LEN),
OK_OP(INPLACE_ADD),
OK_OP(INPLACE_SUBTRACT),
OK_OP(INPLACE_MULTIPLY),
@@ -407,7 +406,6 @@
OK_OP(INPLACE_OR),
OK_OP(LIST_TO_TUPLE),
OK_OP(RETURN_VALUE),
- OK_OP(ROT_N),
OK_OP(BUILD_TUPLE),
OK_OP(BUILD_LIST),
OK_OP(BUILD_SET),
@@ -469,68 +469,69 @@
have_image = False
- match getattr(mode_settings, self.canvas_source_attr_name):
- case 'MATERIAL':
- if len(ob.material_slots) > 1:
- layout.template_list(
- "MATERIAL_UL_matslots", "layers",
- ob, "material_slots",
- ob, "active_material_index", rows=2,
- )
- mat = ob.active_material
- if mat and mat.texture_paint_images:
- row = layout.row()
- row.template_list(
- "TEXTURE_UL_texpaintslots", "",
- mat, "texture_paint_slots",
- mat, "paint_active_slot", rows=2,
- )
-
- if mat.texture_paint_slots:
- slot = mat.texture_paint_slots[mat.paint_active_slot]
- else:
- slot = None
+ source_type = getattr(mode_settings, self.canvas_source_attr_name)
- have_image = slot is not None
- else:
- row = layout.row()
-
- box = row.box()
- box.label(text="No Textures")
-
- sub = row.column(align=True)
- sub.operator_menu_enum("paint.add_texture_paint_slot", "type", icon='ADD', text="")
+ if source_type == 'MATERIAL':
+ if len(ob.material_slots) > 1:
+ layout.template_list(
+ "MATERIAL_UL_matslots", "layers",
+ ob, "material_slots",
+ ob, "active_material_index", rows=2,
+ )
+ mat = ob.active_material
+ if mat and mat.texture_paint_images:
+ row = layout.row()
+ row.template_list(
+ "TEXTURE_UL_texpaintslots", "",
+ mat, "texture_paint_slots",
+ mat, "paint_active_slot", rows=2,
+ )
- case 'IMAGE':
- mesh = ob.data
- uv_text = mesh.uv_layers.active.name if mesh.uv_layers.active else ""
- layout.template_ID(mode_settings, self.canvas_image_attr_name, new="image.new", open="image.open")
- if settings.missing_uvs:
- layout.operator("paint.add_simple_uvs", icon='ADD', text="Add UVs")
+ if mat.texture_paint_slots:
+ slot = mat.texture_paint_slots[mat.paint_active_slot]
else:
- layout.menu("VIEW3D_MT_tools_projectpaint_uvlayer", text=uv_text, translate=False)
- have_image = getattr(settings, self.canvas_image_attr_name) is not None
+ slot = None
- self.draw_image_interpolation(layout=layout, mode_settings=mode_settings)
+ have_image = slot is not None
+ else:
+ row = layout.row()
- case 'COLOR_ATTRIBUTE':
- mesh = ob.data
+ box = row.box()
+ box.label(text="No Textures")
- row = layout.row()
- col = row.column()
- col.template_list(
- "MESH_UL_color_attributes_selector",
- "color_attributes",
- mesh,
- "color_attributes",
- mesh.color_attributes,
- "active_color_index",
- rows=3,
- )
+ sub = row.column(align=True)
+ sub.operator_menu_enum("paint.add_texture_paint_slot", "type", icon='ADD', text="")
- col = row.column(align=True)
- col.operator("geometry.color_attribute_add", icon='ADD', text="")
- col.operator("geometry.color_attribute_remove", icon='REMOVE', text="")
+ elif source_type == 'IMAGE':
+ mesh = ob.data
+ uv_text = mesh.uv_layers.active.name if mesh.uv_layers.active else ""
+ layout.template_ID(mode_settings, self.canvas_image_attr_name, new="image.new", open="image.open")
+ if settings.missing_uvs:
+ layout.operator("paint.add_simple_uvs", icon='ADD', text="Add UVs")
+ else:
+ layout.menu("VIEW3D_MT_tools_projectpaint_uvlayer", text=uv_text, translate=False)
+ have_image = getattr(settings, self.canvas_image_attr_name) is not None
+
+ self.draw_image_interpolation(layout=layout, mode_settings=mode_settings)
+
+ elif source_type == 'COLOR_ATTRIBUTE':
+ mesh = ob.data
+
+ row = layout.row()
+ col = row.column()
+ col.template_list(
+ "MESH_UL_color_attributes_selector",
+ "color_attributes",
+ mesh,
+ "color_attributes",
+ mesh.color_attributes,
+ "active_color_index",
+ rows=3,
+ )
+
+ col = row.column(align=True)
+ col.operator("geometry.color_attribute_add", icon='ADD', text="")
+ col.operator("geometry.color_attribute_remove", icon='REMOVE', text="")
if settings.missing_uvs:
layout.separator()