Using mutexes around accesses to refcounts seems to make the Windows build much less...
[synfig.git] / synfig-core / trunk / src / synfig / synfig.h
1 /* === S Y N F I G ========================================================= */
2 /*!     \file synfig.h
3 **      \brief Primary Header for Synfig
4 **
5 **      $Id$
6 **
7 **      \legal
8 **      Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
9 **
10 **      This package is free software; you can redistribute it and/or
11 **      modify it under the terms of the GNU General Public License as
12 **      published by the Free Software Foundation; either version 2 of
13 **      the License, or (at your option) any later version.
14 **
15 **      This package is distributed in the hope that it will be useful,
16 **      but WITHOUT ANY WARRANTY; without even the implied warranty of
17 **      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 **      General Public License for more details.
19 **      \endlegal
20 */
21 /* ========================================================================= */
22
23 /* === S T A R T =========================================================== */
24
25 #ifndef __SYNFIG__
26 #define __SYNFIG__
27
28 #ifndef __cplusplus
29 #error Sorry, Synfig only supports C++ at this time. See README for details.
30 #endif
31
32 #warning The use of this header is deprecated. Please use the individual header files.
33
34 /* === M A C R O S ========================================================= */
35
36 #define SYNFIG_LEAN
37 #undef SYNFIG_LEAN
38 /*! \def SYNFIG_LEAN
39 **      \brief Define this to remove unused features, speeding up compile time.
40 **
41 **      Define SYNFIG_LEAN if your plug-in
42 **      or program doesn't use the synfig::Angle class
43 **      or the rendering subsystem. This can speed up
44 **      compiles. You may also wish to individually
45 **      use the macros SYNFIG_NO_ANGLE and
46 **      SYNFIG_NO_RENDER.
47 **      \see SYNFIG_NO_ANGLE, SYNFIG_NO_RENDER
48 */
49 #ifdef SYNFIG_LEAN
50 # ifndef SYNFIG_NO_ANGLE
51 #  define SYNFIG_NO_ANGLE
52 # endif
53 # ifndef SYNFIG_NO_RENDER
54 #  define SYNFIG_NO_RENDER
55 # endif
56 #endif
57
58 /*!     \def SYNFIG_LAYER
59 **      The SYNFIG_LAYER macro is useful for when you
60 **      are compiling layers, and can help to improve
61 **      build time.
62 */
63 #ifdef SYNFIG_LAYER
64 # ifndef SYNFIG_NO_RENDER
65 #  define SYNFIG_NO_RENDER
66 # endif
67 # define SYNFIG_NO_LOADSAVE
68 #endif
69
70 /*!     \def SYNFIG_TARGET
71 **      The SYNFIG_TARGET macro is useful for when you
72 **      are compiling render targets, and can help to
73 **      improve build time.
74 */
75 #ifdef SYNFIG_TARGET
76 # ifdef SYNFIG_NO_RENDER
77 #  error You defined SYNFIG_TARGET, but also SYNFIG_NO_RENDER. This does not make sense.
78 # endif
79 # ifndef SYNFIG_NO_ANGLE
80 #  define SYNFIG_NO_ANGLE
81 # endif
82 # define SYNFIG_NO_LOADSAVE
83 #endif
84
85 /*!     \def SYNFIG_MODULE
86 **      \todo Writeme
87 */
88 #ifdef SYNFIG_MODULE
89 # define SYNFIG_NO_LOADSAVE
90 #endif
91
92 /*! \namespace synfig
93 **      \brief Where every function and class of the synfig library can be found
94 **      \todo Writeme
95 */
96
97 /* === H E A D E R S ======================================================= */
98
99 #include "version.h"
100 #include "general.h"
101 #include "module.h"
102 #include "color.h"
103 #include "canvas.h"
104 #include "layer.h"
105 #include "vector.h"
106 #include "types.h"
107 #include "segment.h"
108
109 #ifndef SYNFIG_NO_RENDER
110 # include "render.h"
111 #endif
112
113 #ifndef SYNFIG_LAYER
114 #include "target.h"
115 #endif
116
117 #include "valuenode.h"
118 #include "valuenode_subtract.h"
119 //#include "valuenode_animated.h"
120 #include "valuenode_composite.h"
121 #include "valuenode_const.h"
122 #include "valuenode_linear.h"
123 #include "valuenode_dynamiclist.h"
124 #include "valuenode_reference.h"
125
126 #ifndef SYNFIG_NO_LOADSAVE
127 # include "savecanvas.h"
128 # include "loadcanvas.h"
129 #endif
130
131 #include "importer.h"
132 #include "surface.h"
133
134 #include "string.h"
135
136 /* === C L A S S E S & S T R U C T S ======================================= */
137
138 /* === E N D =============================================================== */
139
140 #endif