synched with trunk at revision 36569
[blender.git] / source / blender / makesdna / DNA_scene_types.h
index 348afac..fb9b4f0 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * $Id$ 
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
 #ifndef DNA_SCENE_TYPES_H
 #define DNA_SCENE_TYPES_H
 
+/** \file DNA_scene_types.h
+ *  \ingroup DNA
+ */
+
 // XXX, temp feature
 #define DURIAN_CAMERA_SWITCH
 
@@ -520,6 +524,7 @@ typedef struct GameData {
 #define GAME_ENABLE_ANIMATION_RECORD           (1 << 13)
 #define GAME_SHOW_MOUSE                                                (1 << 14)
 #define GAME_SHOW_OBSTACLE_SIMULATION          (1 << 15)
+#define GAME_GLSL_NO_COLOR_MANAGEMENT          (1 << 15)
 
 /* GameData.matmode */
 #define GAME_MAT_TEXFACE       0
@@ -749,9 +754,11 @@ typedef struct ToolSettings {
        
        /* Alt+RMB option */
        char edge_mode;
+       char edge_mode_live_unwrap;
 
        /* Transform */
-       short snap_mode, snap_flag, snap_target;
+       char snap_mode;
+       short snap_flag, snap_target;
        short proportional, prop_mode;
        char proportional_objects; /* proportional edit, object mode */
        char pad[3];
@@ -804,7 +811,9 @@ typedef struct Scene {
        
        unsigned int lay;                       /* bitflags for layer visibility */
        int layact;             /* active layer */
+       unsigned int lay_updated;       /* runtime flag, has layer ever been updated since load? */
        unsigned int customdata_mask;   /* XXX. runtime flag for drawing, actually belongs in the window, only used by object_handle_update() */
+       unsigned int customdata_mask_modal; /* XXX. same as above but for temp operator use (gl renders) */
        
        short flag;                                                             /* various settings */
        
@@ -906,7 +915,8 @@ typedef struct Scene {
 #define R_OUTPUT_SCREEN        0
 #define R_OUTPUT_AREA  1
 #define R_OUTPUT_WINDOW        2
-/*#define R_OUTPUT_FORKED      3*/
+#define R_OUTPUT_NONE  3
+/*#define R_OUTPUT_FORKED      4*/
 
 /* filtertype */
 #define R_FILTER_BOX   0
@@ -1061,15 +1071,18 @@ typedef struct Scene {
 
 /* depricate this! */
 #define TESTBASE(v3d, base)    ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0) )
-#define TESTBASELIB(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
-#define TESTBASELIB_BGMODE(v3d, scene, base)   ( ((base)->flag & SELECT) && ((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
-#define BASE_EDITABLE_BGMODE(v3d, scene, base)   (((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
+#define TESTBASELIB(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && ((base)->object->id.lib==NULL) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
+#define TESTBASELIB_BGMODE(v3d, scene, base)   ( ((base)->flag & SELECT) && ((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==NULL) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
+#define BASE_EDITABLE_BGMODE(v3d, scene, base)   (((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==NULL) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
 #define BASE_SELECTABLE(v3d, base)      ((base->lay & v3d->lay) && (base->object->restrictflag & (OB_RESTRICT_SELECT|OB_RESTRICT_VIEW))==0)
 #define BASE_VISIBLE(v3d, base)         ((base->lay & v3d->lay) && (base->object->restrictflag & OB_RESTRICT_VIEW)==0)
 #define FIRSTBASE              scene->base.first
 #define LASTBASE               scene->base.last
 #define BASACT                 (scene->basact)
-#define OBACT                  (BASACT? BASACT->object: 0)
+#define OBACT                  (BASACT? BASACT->object: NULL)
+
+#define V3D_CAMERA_LOCAL(v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : NULL)
+#define V3D_CAMERA_SCENE(scene, v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : (scene)->camera)
 
 #define ID_NEW(a)              if( (a) && (a)->id.newid ) (a)= (void *)(a)->id.newid
 #define ID_NEW_US(a)   if( (a)->id.newid) {(a)= (void *)(a)->id.newid; (a)->id.us++;}
@@ -1081,9 +1094,9 @@ typedef struct Scene {
 #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)
+#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)
 
 #define RAD_PHASE_PATCHES      1
 #define RAD_PHASE_FACES                2
@@ -1173,6 +1186,7 @@ typedef enum SculptFlags {
        SCULPT_LOCK_Z = (1<<5),
        SCULPT_SYMMETRY_FEATHER = (1<<6),
        SCULPT_USE_OPENMP = (1<<7),
+       SCULPT_ONLY_DEFORM = (1<<8),
 } SculptFlags;
 
 /* sculpt_paint_settings */
@@ -1198,7 +1212,7 @@ typedef enum SculptFlags {
 
 /* toolsettings->uvcalc_flag */
 #define UVCALC_FILLHOLES                       1
-/*#define UVCALC_NO_ASPECT_CORRECT     2*/     /* would call this UVCALC_ASPECT_CORRECT, except it should be default with old file */
+#define UVCALC_NO_ASPECT_CORRECT       2       /* would call this UVCALC_ASPECT_CORRECT, except it should be default with old file */
 #define UVCALC_TRANSFORM_CORRECT       4       /* adjust UV's while transforming to avoid distortion */
 
 /* toolsettings->uv_flag */