Merged changes in the trunk up to revision 51718.
[blender.git] / source / blender / makesdna / DNA_scene_types.h
index e3a8863714a5ce6273121dab45d4591e3f8bfee2..9bfa0e7fdf7094b9b5e3eff15c5a6b15bb63d775 100644 (file)
@@ -45,6 +45,7 @@ extern "C" {
 #include "DNA_vec_types.h"
 #include "DNA_listBase.h"
 #include "DNA_ID.h"
+#include "DNA_freestyle_types.h"
 
 struct Object;
 struct Brush;
@@ -187,6 +188,9 @@ typedef struct SceneRenderLayer {
 
        int samples;
        int pad;
+       
+       struct FreestyleConfig freestyleConfig;
+       
 } SceneRenderLayer;
 
 /* srl->layflag */
@@ -196,7 +200,8 @@ typedef struct SceneRenderLayer {
 #define SCE_LAY_EDGE   8
 #define SCE_LAY_SKY            16
 #define SCE_LAY_STRAND 32
-       /* flags between 32 and 0x8000 are set to 1 already, for future options */
+#define SCE_LAY_FRS            64
+       /* flags between 64 and 0x8000 are set to 1 already, for future options */
 
 #define SCE_LAY_ALL_Z          0x8000
 #define SCE_LAY_XOR                    0x10000
@@ -318,10 +323,11 @@ typedef struct ImageFormatData {
 /* return values from BKE_imtype_valid_depths, note this is depts per channel */
 #define R_IMF_CHAN_DEPTH_1  (1<<0) /* 1bits  (unused) */
 #define R_IMF_CHAN_DEPTH_8  (1<<1) /* 8bits  (default) */
-#define R_IMF_CHAN_DEPTH_12 (1<<2) /* 12bits (uncommon, jp2 supports) */
-#define R_IMF_CHAN_DEPTH_16 (1<<3) /* 16bits (tiff, halff float exr) */
-#define R_IMF_CHAN_DEPTH_24 (1<<4) /* 24bits (unused) */
-#define R_IMF_CHAN_DEPTH_32 (1<<5) /* 32bits (full float exr) */
+#define R_IMF_CHAN_DEPTH_10 (1<<2) /* 10bits (uncommon, Cineon/DPX support) */
+#define R_IMF_CHAN_DEPTH_12 (1<<3) /* 12bits (uncommon, jp2/DPX support) */
+#define R_IMF_CHAN_DEPTH_16 (1<<4) /* 16bits (tiff, halff float exr) */
+#define R_IMF_CHAN_DEPTH_24 (1<<5) /* 24bits (unused) */
+#define R_IMF_CHAN_DEPTH_32 (1<<6) /* 32bits (full float exr) */
 
 /* ImageFormatData.planes */
 #define R_IMF_PLANES_RGB   24
@@ -475,7 +481,7 @@ typedef struct RenderData {
        int color_mgt_flag;
        
        /** post-production settings. deprecated, but here for upwards compat (initialized to 1) */
-       float postgamma, posthue, postsat;       
+       float postgamma, posthue, postsat;
        
         /* Dither noise intensity */
        float dither_intensity;
@@ -527,6 +533,10 @@ typedef struct RenderData {
        float pad2;
        struct Text *dometext  DNA_DEPRECATED;  //  XXX deprecated since 2.5
 
+       /* Freestyle line thickness options */
+       int line_thickness_mode;
+       float unit_line_thickness; /* in pixels */
+
        /* render engine */
        char engine[32];
 } RenderData;
@@ -829,14 +839,15 @@ typedef struct VPaint {
        void *paintcursor;                                      /* wm handle */
 } VPaint;
 
-/* VPaint flag */
-#define VP_COLINDEX    1
-#define VP_AREA                2  /* vertex paint only */
-
-#define VP_NORMALS     8
-#define VP_SPRAY       16
-// #define VP_MIRROR_X 32 // deprecated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X)
-#define VP_ONLYVGROUP  128  /* weight paint only */
+/* VPaint.flag */
+enum {
+       // VP_COLINDEX  = (1 << 0),  /* only paint onto active material*/  /* deprecated since before 2.49 */
+       VP_AREA         = (1 << 1),
+       VP_NORMALS      = (1 << 3),
+       VP_SPRAY        = (1 << 4),
+       // VP_MIRROR_X  = (1 << 5),  /* deprecated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X) */
+       VP_ONLYVGROUP   = (1 << 7)   /* weight paint only */
+};
 
 /* *************************************************************** */
 /* Transform Orientations */
@@ -1045,7 +1056,7 @@ typedef struct UnitSettings {
        /* Display/Editing unit options for each scene */
        float scale_length; /* maybe have other unit conversions? */
        char system; /* imperial, metric etc */
-       char system_rotation; /* not implemented as a propper unit system yet */
+       char system_rotation; /* not implemented as a proper unit system yet */
        short flag;
 } UnitSettings;
 
@@ -1085,7 +1096,7 @@ typedef struct Scene {
        
        short use_nodes;
        
-       struct bNodeTree *nodetree;     
+       struct bNodeTree *nodetree;
        
        struct Editing *ed;                                                             /* sequence editor data is allocated here */
        
@@ -1183,10 +1194,11 @@ 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 */
 
 /* seq_flag */
 #define R_SEQ_GL_PREV 1
-#define R_SEQ_GL_REND 2
+// #define R_SEQ_GL_REND 2  // UNUSED, opengl render has its own operator now.
 
 /* displaymode */
 
@@ -1297,9 +1309,14 @@ typedef struct Scene {
 /* simplify_flag */
 #define R_SIMPLE_NO_TRIANGULATE                1
 
+/* line_thickness_mode */
+#define R_LINE_THICKNESS_ABSOLUTE 1
+#define R_LINE_THICKNESS_RELATIVE 2
+
 /* sequencer seq_prev_type seq_rend_type */
 
 
+
 /* **************** SCENE ********************* */
 
 /* for general use */
@@ -1352,8 +1369,8 @@ typedef struct Scene {
 #define        SFRA                    (scene->r.sfra)
 #define        EFRA                    (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 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) * (double)(a)) / (double)scene->r.frs_sec)
 #define TIME2FRA(a)           ((((double) scene->r.frs_sec) * (double)(a)) / (double)scene->r.frs_sec_base)
 #define FPS                     (((double) scene->r.frs_sec) / (double)scene->r.frs_sec_base)
@@ -1451,6 +1468,7 @@ typedef enum SculptFlags {
        SCULPT_SYMMETRY_FEATHER = (1<<6),
        SCULPT_USE_OPENMP = (1<<7),
        SCULPT_ONLY_DEFORM = (1<<8),
+       SCULPT_SHOW_DIFFUSE = (1<<9),
 } SculptFlags;
 
 /* ImagePaintSettings.flag */
@@ -1489,6 +1507,7 @@ typedef enum SculptFlags {
 #define EDGE_MODE_TAG_SHARP                            2
 #define EDGE_MODE_TAG_CREASE                   3
 #define EDGE_MODE_TAG_BEVEL                            4
+#define EDGE_MODE_TAG_FREESTYLE                        5
 
 /* toolsettings->gpencil_flags */
 #define GP_TOOL_FLAG_PAINTSESSIONS_ON  (1<<0)