Merged changes in the trunk up to revision 26856.
[blender-staging.git] / source / blender / makesdna / DNA_scene_types.h
index a55d13cf1606c24cd11dab576dd38255bbd6a172..df7035146e334ff5a64316a94fd632d4f0438b79 100644 (file)
@@ -15,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
@@ -40,6 +40,7 @@ extern "C" {
 #include "DNA_vec_types.h"
 #include "DNA_listBase.h"
 #include "DNA_ID.h"
+#include "DNA_freestyle_types.h"
 
 struct Object;
 struct World;
@@ -152,6 +153,9 @@ typedef struct SceneRenderLayer {
        
        int passflag;                   /* pass_xor has to be after passflag */
        int pass_xor;
+       
+       struct FreestyleConfig freestyleConfig;
+       
 } SceneRenderLayer;
 
 /* srl->layflag */
@@ -161,6 +165,7 @@ typedef struct SceneRenderLayer {
 #define SCE_LAY_EDGE   8
 #define SCE_LAY_SKY            16
 #define SCE_LAY_STRAND 32
+#define SCE_LAY_FRS            64
        /* flags between 32 and 0x8000 are set to 1 already, for future options */
 
 #define SCE_LAY_ALL_Z          0x8000
@@ -170,23 +175,25 @@ typedef struct SceneRenderLayer {
 #define SCE_LAY_NEG_ZMASK      0x80000
 
 /* srl->passflag */
-#define SCE_PASS_COMBINED      1
-#define SCE_PASS_Z                     2
-#define SCE_PASS_RGBA          4
-#define SCE_PASS_DIFFUSE       8
-#define SCE_PASS_SPEC          16
-#define SCE_PASS_SHADOW                32
-#define SCE_PASS_AO                    64
-#define SCE_PASS_REFLECT       128
-#define SCE_PASS_NORMAL                256
-#define SCE_PASS_VECTOR                512
-#define SCE_PASS_REFRACT       1024
-#define SCE_PASS_INDEXOB       2048
-#define SCE_PASS_UV                    4096
-#define SCE_PASS_RADIO         8192 /* Radio removed, can use for new GI? */
-#define SCE_PASS_MIST          16384
-
-#define SCE_PASS_RAYHITS       32768
+#define SCE_PASS_COMBINED              1
+#define SCE_PASS_Z                             2
+#define SCE_PASS_RGBA                  4
+#define SCE_PASS_DIFFUSE               8
+#define SCE_PASS_SPEC                  16
+#define SCE_PASS_SHADOW                        32
+#define SCE_PASS_AO                            64
+#define SCE_PASS_REFLECT               128
+#define SCE_PASS_NORMAL                        256
+#define SCE_PASS_VECTOR                        512
+#define SCE_PASS_REFRACT               1024
+#define SCE_PASS_INDEXOB               2048
+#define SCE_PASS_UV                            4096
+#define SCE_PASS_RADIO                 8192 /* Radio removed, can use for new GI? */
+#define SCE_PASS_MIST                  16384
+#define SCE_PASS_RAYHITS               32768
+#define SCE_PASS_EMIT                  65536
+#define SCE_PASS_ENVIRONMENT   131072
+#define SCE_PASS_INDIRECT              262144
 
 /* note, srl->passflag is treestore element 'nr' in outliner, short still... */
 
@@ -300,7 +307,10 @@ typedef struct RenderData {
        
        /* information on different layers to be rendered */
        ListBase layers;
-       short actlay, pad;
+       short actlay;
+       
+       /* number of mblur samples */
+       short mblur_samples;
        
        /**
         * Adjustment factors for the aspect ratio in the x direction, was a short in 2.45
@@ -357,8 +367,9 @@ typedef struct RenderData {
        float bg_stamp[4];
 
        /* render simplify */
-       int simplify_subsurf;
-       int simplify_shadowsamples;
+       int simplify_flag;
+       short simplify_subsurf;
+       short simplify_shadowsamples;
        float simplify_particles;
        float simplify_aosss;
 
@@ -510,7 +521,7 @@ typedef struct Paint {
 typedef struct ImagePaintSettings {
        Paint paint;
 
-       short flag, tool;
+       short flag, pad;
        
        /* for projection painting only */
        short seam_bleed, normal_angle;
@@ -565,7 +576,7 @@ typedef struct Sculpt {
 typedef struct VPaint {
        Paint paint;
 
-       short mode, flag;
+       short flag, pad;
        int tot;                                                        /* allocation size of prev buffers */
        unsigned int *vpaint_prev;                      /* previous mesh colors */
        struct MDeformVert *wpaint_prev;        /* previous vertex weights */
@@ -752,7 +763,10 @@ typedef struct Scene {
        ListBase markers;
        ListBase transform_spaces;
        
-       ListBase sound_handles;
+       void *sound_scene;
+       void *sound_scene_handle;
+       
+       void *fps_info;                                 /* (runtime) info/cache used for presenting playback framerate info to the user */
        
        /* none of the dependancy graph  vars is mean to be saved */
        struct  DagForest *theDag;
@@ -778,6 +792,11 @@ typedef struct Scene {
 
        /* Physics simulation settings */
        struct PhysicsSettings physics_settings;
+       
+       /* Freestyle */
+       short freestyle_current_layer_number;
+       short pad[3];
+       
 } Scene;
 
 
@@ -789,6 +808,10 @@ typedef struct Scene {
 #define R_FRONTBUF             4
 #define R_FRONTBUFANIM 8
 
+/* flag */
+       /* use preview range */
+#define SCER_PRV_RANGE (1<<0)
+
 /* mode (int now) */
 #define R_OSA                  0x0001
 #define R_SHADOW               0x0002
@@ -821,6 +844,7 @@ typedef struct Scene {
 #define R_NO_OVERWRITE 0x400000 /* skip existing files */
 #define R_TOUCH                        0x800000 /* touch files before rendering */
 #define R_SIMPLIFY             0x1000000
+#define R_EDGE_FRS             0x2000000 /* R_EDGE for Freestyle */
 
 /* displaymode */
 
@@ -960,6 +984,9 @@ typedef struct Scene {
 #define R_BAKE_SPACE_OBJECT     2
 #define R_BAKE_SPACE_TANGENT 3
 
+/* simplify_flag */
+#define R_SIMPLE_NO_TRIANGULATE                1
+
 /* **************** SCENE ********************* */
 
 /* for general use */
@@ -991,8 +1018,9 @@ typedef struct Scene {
 #define        F_CFRA                  ((float)(scene->r.cfra))
 #define        SFRA                    (scene->r.sfra)
 #define        EFRA                    (scene->r.efra)
-#define PSFRA                  ((scene->r.psfra != 0)? (scene->r.psfra): (scene->r.sfra))
-#define PEFRA                  ((scene->r.psfra != 0)? (scene->r.pefra): (scene->r.efra))
+#define PRVRANGEON             (scene->r.flag & SCER_PRV_RANGE)
+#define PSFRA                  ((PRVRANGEON)? (scene->r.psfra): (scene->r.sfra))
+#define PEFRA                  ((PRVRANGEON)? (scene->r.pefra): (scene->r.efra))
 #define FRA2TIME(a)           ((((double) scene->r.frs_sec_base) * (a)) / scene->r.frs_sec)
 #define TIME2FRA(a)           ((((double) scene->r.frs_sec) * (a)) / scene->r.frs_sec_base)
 #define FPS                     (((double) scene->r.frs_sec) / scene->r.frs_sec_base)
@@ -1064,7 +1092,7 @@ typedef struct Scene {
 #define AUDIO_SYNC             2
 #define AUDIO_SCRUB            4
 
-#define FFMPEG_MULTIPLEX_AUDIO  1
+#define FFMPEG_MULTIPLEX_AUDIO  1 /* deprecated, you can choose none as audiocodec now */
 #define FFMPEG_AUTOSPLIT_OUTPUT 2
 
 /* Paint.flags */
@@ -1137,6 +1165,7 @@ typedef enum SculptFlags {
 #define PE_BRUSH_PUFF          3
 #define PE_BRUSH_ADD           4
 #define PE_BRUSH_SMOOTH                5
+#define PE_BRUSH_WEIGHT                6
 
 /* this must equal ParticleEditSettings.brush array size */
 #define PE_TOT_BRUSH           6
@@ -1215,6 +1244,7 @@ typedef enum SculptFlags {
 #define        USER_UNIT_IMPERIAL              2
 /* UnitSettings->flag */
 #define        USER_UNIT_OPT_SPLIT             1
+#define USER_UNIT_ROT_RADIANS  2
 
 
 #ifdef __cplusplus