Commit: 12c5ed6aca3af178403b508ebe88e655c1285528
Author: Amelie Fondevilla
Date: Mon Dec 5 15:01:14 2022 +0100
Branches: gpencil-new-data-proposal
https://developer.blender.org/rB12c5ed6aca3af178403b508ebe88e655c1285528
new to old data structure : conversion of layers and frames, no strokes yet
===================================================================
M source/blender/blenkernel/intern/gpencil_new_proposal_conversion.cc
===================================================================
diff --git
a/source/blender/blenkernel/intern/gpencil_new_proposal_conversion.cc
b/source/blender/blenkernel/intern/gpencil_new_proposal_conversion.cc
index 17295b3c469..02513b45171 100644
--- a/source/blender/blenkernel/intern/gpencil_new_proposal_conversion.cc
+++ b/source/blender/blenkernel/intern/gpencil_new_proposal_conversion.cc
@@ -38,6 +38,37 @@ bGPdata *convert_new_to_old_gpencil_data(const GPData
&new_gpd)
{
bGPdata *gpd = reinterpret_cast<bGPdata *>(MEM_mallocN(sizeof(bGPdata),
__func__));
+ BLI_listbase_clear(&gpd->layers);
+ gpd->totlayer = gpd->totframe = gpd->totstroke = 0;
+
+ int frm_offset{0};
+ gpd->totlayer = new_gpd.layers_size;
+ for (int lay_i = 0; lay_i < new_gpd.layers_size; lay_i++) {
+ bGPDlayer *gpl = reinterpret_cast<bGPDlayer
*>(MEM_mallocN(sizeof(bGPDlayer), __func__));
+ const ::GPLayer *lay{new_gpd.layers_array + lay_i};
+ sprintf(gpl->info, "%s", lay->name);
+
+ BLI_listbase_clear(&gpl->mask_layers);
+ BLI_listbase_clear(&gpl->frames);
+ BLI_addtail(&gpd->layers, gpl);
+
+ /* Add frames of correct layer index.
+ Assumes that frames in new data structure are sorted by layer index.
+ */
+ while ((frm_offset < new_gpd.frames_size) &&
+ (new_gpd.frames_array[frm_offset].layer_index == lay_i)) {
+ bGPDframe *gpf = reinterpret_cast<bGPDframe
*>(MEM_mallocN(sizeof(bGPDframe), __func__));
+ const ::GPFrame *frm{new_gpd.frames_array + frm_offset};
+ gpf->framenum = frm->start_time;
+
+ BLI_listbase_clear(&gpf->strokes);
+
+ BLI_addtail(&gpl->frames, gpf);
+ ++(gpd->totframe);
+ ++frm_offset;
+ }
+ }
+
return gpd;
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs