Initial Grease Pencil 3.0 stage #106848

Merged
Falk David merged 224 commits from filedescriptor/blender:grease-pencil-v3 into main 2023-05-30 11:14:22 +02:00
3 changed files with 5 additions and 8 deletions
Showing only changes of commit cff9b40253 - Show all commits

View File

@ -92,7 +92,7 @@ static void grease_pencil_copy_data(Main * /*bmain*/,
break; break;
} }
} }
grease_pencil_dst->drawing_array[i]->user_count = src_drawing_base->user_count; /* TODO: Update drawing user counts. */
} }
/* Do not copy layer tree storage. */ /* Do not copy layer tree storage. */
@ -900,11 +900,12 @@ void GreasePencil::add_empty_drawings(const int add_size)
for (const int i : new_drawings.index_range()) { for (const int i : new_drawings.index_range()) {
new_drawings[i] = reinterpret_cast<GreasePencilDrawingBase *>( new_drawings[i] = reinterpret_cast<GreasePencilDrawingBase *>(
MEM_new<GreasePencilDrawing>(__func__)); MEM_new<GreasePencilDrawing>(__func__));
new_drawings[i]->user_count = 0;
GreasePencilDrawing *drawing = reinterpret_cast<GreasePencilDrawing *>(new_drawings[i]); GreasePencilDrawing *drawing = reinterpret_cast<GreasePencilDrawing *>(new_drawings[i]);
new (&drawing->geometry) bke::CurvesGeometry(); new (&drawing->geometry) bke::CurvesGeometry();
drawing->runtime = MEM_new<bke::GreasePencilDrawingRuntime>(__func__); drawing->runtime = MEM_new<bke::GreasePencilDrawingRuntime>(__func__);
} }
/* TODO: Update drawing user counts. */
} }
void GreasePencil::remove_drawing(const int index_to_remove) void GreasePencil::remove_drawing(const int index_to_remove)

View File

@ -248,10 +248,11 @@ void legacy_gpencil_to_grease_pencil(Main &bmain, GreasePencil &grease_pencil, b
new_frame.type = gpf->key_type; new_frame.type = gpf->key_type;
SET_FLAG_FROM_TEST(new_frame.flag, (gpf->flag & GP_FRAME_SELECT), GP_FRAME_SELECTED); SET_FLAG_FROM_TEST(new_frame.flag, (gpf->flag & GP_FRAME_SELECT), GP_FRAME_SELECTED);
new_layer.insert_frame(gpf->framenum, std::move(new_frame)); new_layer.insert_frame(gpf->framenum, std::move(new_frame));
drawing.base.user_count = 1;
i++; i++;
} }
/* TODO: Update drawing user counts. */
new_layer.tag_frames_map_keys_changed(); new_layer.tag_frames_map_keys_changed();
} }

View File

@ -79,11 +79,6 @@ typedef struct GreasePencilDrawingBase {
* Flag. Used to set e.g. the selection status. See `GreasePencilDrawingBaseFlag`. * Flag. Used to set e.g. the selection status. See `GreasePencilDrawingBaseFlag`.
*/ */
uint32_t flag; uint32_t flag;
/**
* Number of users of this drawing in the layer tree.
*/
int32_t user_count;
char _pad2[4];
} GreasePencilDrawingBase; } GreasePencilDrawingBase;
/** /**