forked from bartvdbraak/blender
Geometry Nodes: warn when output attribute has not been saved
This commit is contained in:
parent
f8e1526fa6
commit
4cb8438e08
@ -94,6 +94,7 @@ class OutputAttribute {
|
||||
SaveFn save_;
|
||||
std::optional<fn::GVMutableArray_GSpan> optional_span_varray_;
|
||||
bool ignore_old_values_ = false;
|
||||
bool save_has_been_called_ = false;
|
||||
|
||||
public:
|
||||
OutputAttribute() = default;
|
||||
@ -109,6 +110,10 @@ class OutputAttribute {
|
||||
{
|
||||
}
|
||||
|
||||
OutputAttribute(OutputAttribute &&other) = default;
|
||||
|
||||
~OutputAttribute();
|
||||
|
||||
operator bool() const
|
||||
{
|
||||
return varray_.get() != nullptr;
|
||||
|
@ -184,6 +184,7 @@ AttributeDomain attribute_domain_highest_priority(Span<AttributeDomain> domains)
|
||||
|
||||
void OutputAttribute::save()
|
||||
{
|
||||
save_has_been_called_ = true;
|
||||
if (optional_span_varray_.has_value()) {
|
||||
optional_span_varray_->save();
|
||||
}
|
||||
@ -192,6 +193,15 @@ void OutputAttribute::save()
|
||||
}
|
||||
}
|
||||
|
||||
OutputAttribute::~OutputAttribute()
|
||||
{
|
||||
if (!save_has_been_called_) {
|
||||
if (varray_) {
|
||||
std::cout << "Warning: Call `save()` to make sure that changes persist in all cases.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GVArrayPtr BuiltinCustomDataLayerProvider::try_get_for_read(
|
||||
const GeometryComponent &component) const
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user