Fix (unreported): GPv3: Incorrect user count for drawing at index 0

The `GreasePencil::update_drawing_users_for_layer` function was using an
incorrect drawing index check, skipping over drawing 0 every time.
As a consequence the first drawing may have zero users despite at least
one frame referencing it.

Pull Request: https://projects.blender.org/blender/blender/pulls/129955
This commit is contained in:
Lukas Tönne
2024-11-07 13:31:34 +01:00
parent 59bc3f0959
commit dc04d9abc7

View File

@@ -2984,16 +2984,15 @@ void GreasePencil::update_drawing_users_for_layer(const blender::bke::greasepenc
{
using namespace blender;
for (auto [key, value] : layer.frames().items()) {
if (value.drawing_index > 0 && value.drawing_index < this->drawings().size()) {
GreasePencilDrawingBase *drawing_base = this->drawing(value.drawing_index);
if (drawing_base->type != GP_DRAWING) {
continue;
}
bke::greasepencil::Drawing &drawing =
reinterpret_cast<GreasePencilDrawing *>(drawing_base)->wrap();
if (!drawing.has_users()) {
drawing.add_user();
}
BLI_assert(this->drawings().index_range().contains(value.drawing_index));
GreasePencilDrawingBase *drawing_base = this->drawing(value.drawing_index);
if (drawing_base->type != GP_DRAWING) {
continue;
}
bke::greasepencil::Drawing &drawing =
reinterpret_cast<GreasePencilDrawing *>(drawing_base)->wrap();
if (!drawing.has_users()) {
drawing.add_user();
}
}
}