Fix #31961: Grease Pencil in VSE don't save the data
Issue was caused by linking to grease pencil from direct_link* function which lead to NULL GP data because it's being read a way later. Link to GP data in lib_link* instead.
This commit is contained in:
@@ -5909,11 +5909,20 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
|
||||
}
|
||||
}
|
||||
else if (sl->spacetype == SPACE_SEQ) {
|
||||
/* grease pencil data is not a direct data and can't be linked from direct_link*
|
||||
* functions, it should be linked from lib_link* funcrions instead
|
||||
*
|
||||
* otherwise it'll lead to lost grease data on open because it'll likely be
|
||||
* read from file after all other users of grease pencil and newdataadr would
|
||||
* simple return NULL here (sergey)
|
||||
*/
|
||||
#if 0
|
||||
SpaceSeq *sseq = (SpaceSeq *)sl;
|
||||
if (sseq->gpd) {
|
||||
sseq->gpd = newdataadr(fd, sseq->gpd);
|
||||
direct_link_gpencil(fd, sseq->gpd);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (sl->spacetype == SPACE_BUTS) {
|
||||
SpaceButs *sbuts = (SpaceButs *)sl;
|
||||
|
||||
Reference in New Issue
Block a user