BLI: Improve IndexMask::complement() performance #108331

Merged
Hans Goudey merged 15 commits from HooglyBoogly/blender:index-mask-complement-performance into main 2023-05-31 17:11:11 +02:00
2 changed files with 9 additions and 11 deletions
Showing only changes of commit 2e40248801 - Show all commits

View File

@ -571,7 +571,7 @@ void BKE_curve_calc_modifiers_pre(Depsgraph *depsgraph,
required_mode = (ModifierMode)(int(required_mode) | eModifierMode_Editmode);
}
ModifierApplyFlag apply_flag = (ModifierApplyFlag)0;
ModifierApplyFlag apply_flag = ModifierApplyFlag(0);
if (editmode) {
apply_flag = MOD_APPLY_USECACHE;
}
@ -695,18 +695,16 @@ static GeometrySet curve_calc_modifiers_post(Depsgraph *depsgraph,
const bool editmode = (!for_render && (cu->editnurb || cu->editfont));
const bool use_cache = !for_render;
ModifierApplyFlag apply_flag = for_render ? MOD_APPLY_RENDER : (ModifierApplyFlag)0;
ModifierApplyFlag apply_flag = for_render ? MOD_APPLY_RENDER : ModifierApplyFlag(0);
ModifierMode required_mode = for_render ? eModifierMode_Render : eModifierMode_Realtime;
if (editmode) {
required_mode = (ModifierMode)(int(required_mode) | eModifierMode_Editmode);
required_mode = ModifierMode(int(required_mode) | eModifierMode_Editmode);
}
const ModifierEvalContext mectx_deform = {
depsgraph, ob, editmode ? (ModifierApplyFlag)(apply_flag | MOD_APPLY_USECACHE) : apply_flag};
depsgraph, ob, editmode ? (apply_flag | MOD_APPLY_USECACHE) : apply_flag};
const ModifierEvalContext mectx_apply = {
depsgraph,
ob,
use_cache ? (ModifierApplyFlag)(apply_flag | MOD_APPLY_USECACHE) : apply_flag};
depsgraph, ob, use_cache ? (apply_flag | MOD_APPLY_USECACHE) : apply_flag};
ModifierData *pretessellatePoint = curve_get_tessellate_point(scene, ob, for_render, editmode);

View File

@ -1014,7 +1014,7 @@ static bool modifier_apply_obdata(
Object *object_eval = DEG_get_evaluated_object(depsgraph, ob);
Curve *curve = static_cast<Curve *>(ob->data);
Curve *curve_eval = static_cast<Curve *>(object_eval->data);
ModifierEvalContext mectx = {depsgraph, object_eval, (ModifierApplyFlag)0};
ModifierEvalContext mectx = {depsgraph, object_eval, ModifierApplyFlag(0)};
if (ELEM(mti->type, eModifierTypeType_Constructive, eModifierTypeType_Nonconstructive)) {
BKE_report(
@ -1040,7 +1040,7 @@ static bool modifier_apply_obdata(
else if (ob->type == OB_LATTICE) {
Object *object_eval = DEG_get_evaluated_object(depsgraph, ob);
Lattice *lattice = static_cast<Lattice *>(ob->data);
ModifierEvalContext mectx = {depsgraph, object_eval, (ModifierApplyFlag)0};
ModifierEvalContext mectx = {depsgraph, object_eval, ModifierApplyFlag(0)};
if (ELEM(mti->type, eModifierTypeType_Constructive, eModifierTypeType_Nonconstructive)) {
BKE_report(reports, RPT_ERROR, "Constructive modifiers cannot be applied");
@ -1068,7 +1068,7 @@ static bool modifier_apply_obdata(
geometry_set.get_component_for_write<CurveComponent>().replace(
&curves, GeometryOwnershipType::ReadOnly);
ModifierEvalContext mectx = {depsgraph, ob, (ModifierApplyFlag)0};
ModifierEvalContext mectx = {depsgraph, ob, ModifierApplyFlag(0)};
mti->modifyGeometrySet(md_eval, &mectx, &geometry_set);
if (!geometry_set.has_curves()) {
BKE_report(reports, RPT_ERROR, "Evaluated geometry from modifier does not contain curves");
@ -1096,7 +1096,7 @@ static bool modifier_apply_obdata(
geometry_set.get_component_for_write<PointCloudComponent>().replace(
&points, GeometryOwnershipType::ReadOnly);
ModifierEvalContext mectx = {depsgraph, ob, (ModifierApplyFlag)0};
ModifierEvalContext mectx = {depsgraph, ob, ModifierApplyFlag(0)};
mti->modifyGeometrySet(md_eval, &mectx, &geometry_set);
if (!geometry_set.has_pointcloud()) {
BKE_report(