Hello folks!

TLDR question:

        What is the meaning of the attributes
        minversion and minsubversion in DNA
        struct FileGlobal?

        (ref: source/makesdna/DNA_fileglobal_types.h)



Too Long Explanation:

I've just updated my Java API (Java .Blend) to reflect recent DNA changes in release 2.81-16. I've noticed, that BLENDER_MINVERSION still refers to release 2.80-0 while some changes in the DNA of release 2.81-x render older files incompatible on a binary level. For example some attributes of structs in the DNA exchanged their position or new attributes were added inbetween existing attributes, which also changes the relative position of other attributes in the data structure. Thus, you cannot just use a pointer to a C struct of version 2.81 to interpret the data of a C struct in version 2.80. But it would have been possible if attributes were only added to the end of a struct only for example.

I looked in the source code and read the recent manual but didn't find an explanation regarding the meaning of MINVERSION and MINSUBVERSION. According to my observations, I have to assume, that files in the range from MINVERSION to VERSION are not meant to be binary compatible with each other. On the other hand, Blender can read and translate Blender files from much older versions than 2.80 for example. Thus, I wonder what purpose the MINVERSION in the global files structure has. Is it eventually going to be removed in future releases?




Thanks in advance
 Holger Machens
_______________________________________________
Bf-committers mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to