blender-v3.3-release backports #110061
|
@ -253,7 +253,10 @@ static int hipewHipInit(void) {
|
|||
/* Default installation path. */
|
||||
const char *hip_paths[] = {"", NULL};
|
||||
#else
|
||||
const char *hip_paths[] = {"libamdhip64.so", "/opt/rocm/hip/lib/libamdhip64.so", NULL};
|
||||
const char *hip_paths[] = {"libamdhip64.so.5",
|
||||
"/opt/rocm/hip/lib/libamdhip64.so.5",
|
||||
"libamdhip64.so",
|
||||
"/opt/rocm/hip/lib/libamdhip64.so", NULL};
|
||||
#endif
|
||||
static int initialized = 0;
|
||||
static int result = 0;
|
||||
|
|
|
@ -128,7 +128,7 @@ class MESH_UL_shape_keys(UIList):
|
|||
row = split.row(align=True)
|
||||
row.emboss = 'NONE_OR_STATUS'
|
||||
if key_block.mute or (obj.mode == 'EDIT' and not (obj.use_shape_key_edit_mode and obj.type == 'MESH')):
|
||||
row.active = False
|
||||
split.active = False
|
||||
if not item.id_data.use_relative:
|
||||
row.prop(key_block, "frame", text="")
|
||||
elif index > 0:
|
||||
|
|
|
@ -92,7 +92,9 @@ struct RigidBodyCon *BKE_rigidbody_create_constraint(struct Scene *scene,
|
|||
/**
|
||||
* Ensure newly set collections' objects all have required data.
|
||||
*/
|
||||
void BKE_rigidbody_objects_collection_validate(struct Scene *scene, struct RigidBodyWorld *rbw);
|
||||
void BKE_rigidbody_objects_collection_validate(struct Main *bmain,
|
||||
struct Scene *scene,
|
||||
struct RigidBodyWorld *rbw);
|
||||
void BKE_rigidbody_constraints_collection_validate(struct Scene *scene,
|
||||
struct RigidBodyWorld *rbw);
|
||||
|
||||
|
|
|
@ -1352,7 +1352,7 @@ RigidBodyCon *BKE_rigidbody_create_constraint(Scene *scene, Object *ob, short ty
|
|||
return rbc;
|
||||
}
|
||||
|
||||
void BKE_rigidbody_objects_collection_validate(Scene *scene, RigidBodyWorld *rbw)
|
||||
void BKE_rigidbody_objects_collection_validate(Main *bmain, Scene *scene, RigidBodyWorld *rbw)
|
||||
{
|
||||
if (rbw->group != NULL) {
|
||||
FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN (rbw->group, object) {
|
||||
|
@ -1360,8 +1360,10 @@ void BKE_rigidbody_objects_collection_validate(Scene *scene, RigidBodyWorld *rbw
|
|||
continue;
|
||||
}
|
||||
object->rigidbody_object = BKE_rigidbody_create_object(scene, object, RBO_TYPE_ACTIVE);
|
||||
DEG_id_tag_update(&object->id, ID_RECALC_TRANSFORM);
|
||||
}
|
||||
FOREACH_COLLECTION_OBJECT_RECURSIVE_END;
|
||||
DEG_relations_tag_update(bmain);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2360,7 +2362,7 @@ void BKE_rigidbody_rebuild_world(Depsgraph *depsgraph, Scene *scene, float ctime
|
|||
void BKE_rigidbody_do_simulation(Depsgraph *depsgraph, Scene *scene, float ctime)
|
||||
{
|
||||
}
|
||||
void BKE_rigidbody_objects_collection_validate(Scene *scene, RigidBodyWorld *rbw)
|
||||
void BKE_rigidbody_objects_collection_validate(Main *bmain, Scene *scene, RigidBodyWorld *rbw)
|
||||
{
|
||||
}
|
||||
void BKE_rigidbody_constraints_collection_validate(Scene *scene, RigidBodyWorld *rbw)
|
||||
|
|
|
@ -1543,7 +1543,7 @@ void do_versions_after_linking_280(FileData *fd, Main *bmain)
|
|||
continue;
|
||||
}
|
||||
|
||||
BKE_rigidbody_objects_collection_validate(scene, rbw);
|
||||
BKE_rigidbody_objects_collection_validate(bmain, scene, rbw);
|
||||
BKE_rigidbody_constraints_collection_validate(scene, rbw);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5520,7 +5520,7 @@ void ANIM_channel_draw_widgets(const bContext *C,
|
|||
&ptr,
|
||||
prop,
|
||||
array_index,
|
||||
"",
|
||||
RNA_property_type(prop) == PROP_ENUM ? NULL : "",
|
||||
ICON_NONE,
|
||||
offset,
|
||||
rect->ymin,
|
||||
|
|
|
@ -1849,8 +1849,9 @@ static int move_to_collection_exec(bContext *C, wmOperator *op)
|
|||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
if (ID_IS_OVERRIDE_LIBRARY(collection)) {
|
||||
BKE_report(op->reports, RPT_ERROR, "Cannot add objects to a library override collection");
|
||||
if (ID_IS_LINKED(collection) || ID_IS_OVERRIDE_LIBRARY(collection)) {
|
||||
BKE_report(
|
||||
op->reports, RPT_ERROR, "Cannot add objects to a library override or linked collection");
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
|
|
|
@ -3686,6 +3686,7 @@ static void vpaint_paint_leaves(bContext *C,
|
|||
switch ((eBrushVertexPaintTool)brush->vertexpaint_tool) {
|
||||
case VPAINT_TOOL_AVERAGE:
|
||||
calculate_average_color<Color, Traits, domain>(vpd, ob, me, brush, lcol, nodes, totnode);
|
||||
vpaint_do_draw<Color, Traits, domain>(C, sd, vp, vpd, ob, me, nodes, totnode, lcol);
|
||||
break;
|
||||
case VPAINT_TOOL_DRAW:
|
||||
vpaint_do_draw<Color, Traits, domain>(C, sd, vp, vpd, ob, me, nodes, totnode, lcol);
|
||||
|
|
|
@ -625,20 +625,22 @@ static const EnumPropertyItem prop_scene_op_types[] = {
|
|||
|
||||
static bool outliner_do_scene_operation(
|
||||
bContext *C,
|
||||
SpaceOutliner *space_outliner,
|
||||
eOutliner_PropSceneOps event,
|
||||
ListBase *lb,
|
||||
bool (*operation_fn)(bContext *, eOutliner_PropSceneOps, TreeElement *, TreeStoreElem *))
|
||||
{
|
||||
bool success = false;
|
||||
|
||||
LISTBASE_FOREACH (TreeElement *, te, lb) {
|
||||
tree_iterator::all_open(*space_outliner, [&](TreeElement *te) {
|
||||
TreeStoreElem *tselem = TREESTORE(te);
|
||||
if (tselem->flag & TSE_SELECTED) {
|
||||
if (operation_fn(C, event, te, tselem)) {
|
||||
success = true;
|
||||
if ((tselem->type == TSE_SOME_ID) && (te->idcode == ID_SCE)) {
|
||||
if (operation_fn(C, event, te, tselem)) {
|
||||
success = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return success;
|
||||
}
|
||||
|
@ -667,7 +669,7 @@ static int outliner_scene_operation_exec(bContext *C, wmOperator *op)
|
|||
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
|
||||
const eOutliner_PropSceneOps event = (eOutliner_PropSceneOps)RNA_enum_get(op->ptr, "type");
|
||||
|
||||
if (outliner_do_scene_operation(C, event, &space_outliner->tree, scene_fn) == false) {
|
||||
if (outliner_do_scene_operation(C, space_outliner, event, scene_fn) == false) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
|
@ -1311,8 +1313,10 @@ static void id_override_library_create_hierarchy_process(bContext *C,
|
|||
if (ID_IS_LINKED(id_iter) || !ID_IS_OVERRIDE_LIBRARY_REAL(id_iter)) {
|
||||
continue;
|
||||
}
|
||||
if (!data.id_hierarchy_roots_uid.contains(
|
||||
id_iter->override_library->hierarchy_root->session_uuid)) {
|
||||
if (id_iter->override_library->hierarchy_root != nullptr &&
|
||||
!data.id_hierarchy_roots_uid.contains(
|
||||
id_iter->override_library->hierarchy_root->session_uuid))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (data.selected_id_uid.contains(id_iter->override_library->reference->session_uuid) ||
|
||||
|
|
|
@ -184,7 +184,7 @@ static void rna_RigidBodyWorld_objects_collection_update(Main *bmain,
|
|||
PointerRNA *ptr)
|
||||
{
|
||||
RigidBodyWorld *rbw = (RigidBodyWorld *)ptr->data;
|
||||
BKE_rigidbody_objects_collection_validate(scene, rbw);
|
||||
BKE_rigidbody_objects_collection_validate(bmain, scene, rbw);
|
||||
rna_RigidBodyWorld_reset(bmain, scene, ptr);
|
||||
}
|
||||
|
||||
|
|
|
@ -581,11 +581,7 @@ static void do_multires_bake(MultiresBakeRender *bkr,
|
|||
do_multires_bake_thread(&handles[0]);
|
||||
}
|
||||
|
||||
/* construct bake result */
|
||||
result->height_min = handles[0].height_min;
|
||||
result->height_max = handles[0].height_max;
|
||||
|
||||
for (i = 1; i < tot_thread; i++) {
|
||||
for (i = 0; i < tot_thread; i++) {
|
||||
result->height_min = min_ff(result->height_min, handles[i].height_min);
|
||||
result->height_max = max_ff(result->height_max, handles[i].height_max);
|
||||
}
|
||||
|
@ -1432,6 +1428,10 @@ static void bake_images(MultiresBakeRender *bkr, MultiresBakeResult *result)
|
|||
{
|
||||
LinkData *link;
|
||||
|
||||
/* construct bake result */
|
||||
result->height_min = FLT_MAX;
|
||||
result->height_max = -FLT_MAX;
|
||||
|
||||
for (link = bkr->image.first; link; link = link->next) {
|
||||
Image *ima = (Image *)link->data;
|
||||
|
||||
|
|
Loading…
Reference in New Issue