svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22205:22290
[blender.git] / source / blender / makesdna / DNA_sdna_types.h
1 /**
2  * blenlib/DNA_sdna.h (mar-2001 nzc)
3  *      
4  * $Id$ 
5  *
6  * ***** BEGIN GPL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef DNA_SDNA_H
32 #define DNA_SDNA_H
33
34 #
35 #
36 typedef struct SDNA {
37         char *data;                     /* full copy of 'encoded' data */
38         int datalen;            /* length of data */
39
40         int nr_names;           /* total number of struct members */
41         char **names;           /* struct member names */
42
43         int pointerlen;         /* size of a pointer in bytes */
44
45         int nr_types;           /* number of basic types + struct types */
46         char **types;           /* type names */
47         short *typelens;        /* type lengths */
48
49         int nr_structs;         /* number of struct types */
50         short **structs;        /* sp= structs[a] is the adress of a struct definintion
51                                    sp[0] is struct type number, sp[1] amount of members
52
53                                                    (sp[2], sp[3]), (sp[4], sp[5]), .. are the member
54                                                    type and name numbers respectively */
55         
56                 /* wrong place for this really, its a simple
57                  * cache for findstruct_nr.
58                  */
59         int lastfind;
60 } SDNA;
61
62 #
63 #
64 typedef struct BHead {
65         int code, len;
66         void *old;
67         int SDNAnr, nr;
68 } BHead;
69 #
70 #
71 typedef struct BHead4 {
72         int code, len;
73         int old;
74         int SDNAnr, nr;
75 } BHead4;
76 #
77 #
78 typedef struct BHead8 {
79         int code, len;
80 #if defined(WIN32) && !defined(FREE_WINDOWS)
81         /* This is a compiler type! */
82         __int64 old;
83 #else
84         long long old;
85 #endif  
86         int SDNAnr, nr;
87 } BHead8;
88
89 #endif
90