diff --git a/source/blender/editors/interface/interface_templates.cc b/source/blender/editors/interface/interface_templates.cc index 557fda36b8c..338c2657f31 100644 --- a/source/blender/editors/interface/interface_templates.cc +++ b/source/blender/editors/interface/interface_templates.cc @@ -40,6 +40,7 @@ #include "BKE_action.h" #include "BKE_blendfile.h" +#include "BKE_cachefile.h" #include "BKE_colorband.h" #include "BKE_colortools.h" #include "BKE_constraint.h" @@ -65,6 +66,7 @@ #include "DEG_depsgraph.h" #include "DEG_depsgraph_build.h" +#include "DEG_depsgraph_query.h" #include "ED_fileselect.h" #include "ED_object.h" @@ -6801,8 +6803,16 @@ void uiTemplateCacheFileProcedural(uiLayout *layout, const bContext *C, PointerR Scene *scene = CTX_data_scene(C); const bool engine_supports_procedural = RE_engine_supports_alembic_procedural(engine_type, scene); + CacheFile *cache_file = static_cast(fileptr->data); + CacheFile *cache_file_eval = reinterpret_cast( + DEG_get_evaluated_id(CTX_data_depsgraph_pointer(C), &cache_file->id)); + bool is_alembic = cache_file_eval->type == CACHEFILE_TYPE_ALEMBIC; - if (!engine_supports_procedural) { + if (!is_alembic) { + row = uiLayoutRow(layout, false); + uiItemL(row, TIP_("Only Alembic Procedurals supported"), ICON_INFO); + } + else if (!engine_supports_procedural) { row = uiLayoutRow(layout, false); /* For Cycles, verify that experimental features are enabled. */ if (BKE_scene_uses_cycles(scene) && !BKE_scene_uses_cycles_experimental_features(scene)) { @@ -6819,7 +6829,7 @@ void uiTemplateCacheFileProcedural(uiLayout *layout, const bContext *C, PointerR } row = uiLayoutRow(layout, false); - uiLayoutSetActive(row, engine_supports_procedural); + uiLayoutSetActive(row, is_alembic && engine_supports_procedural); uiItemR(row, fileptr, "use_render_procedural", 0, nullptr, ICON_NONE); const bool use_render_procedural = RNA_boolean_get(fileptr, "use_render_procedural");