diff options
Diffstat (limited to 'source/blender/makesdna/DNA_scene_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 205 |
1 files changed, 186 insertions, 19 deletions
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index f9cea3871f6..1ace2b42f15 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -204,7 +204,8 @@ typedef struct SceneRenderLayer { #define SCE_LAY_SKY 16 #define SCE_LAY_STRAND 32 #define SCE_LAY_FRS 64 - /* flags between 128 and 0x8000 are set to 1 already, for future options */ +#define SCE_LAY_AO 128 + /* flags between 256 and 0x8000 are set to 1 already, for future options */ #define SCE_LAY_ALL_Z 0x8000 #define SCE_LAY_XOR 0x10000 @@ -354,7 +355,10 @@ typedef struct ImageFormatData { char jp2_flag; char jp2_codec; - char pad[5]; + /* TIFF */ + char tiff_codec; + + char pad[4]; /* Multiview */ char views_format; @@ -441,6 +445,14 @@ typedef struct ImageFormatData { /* ImageFormatData.cineon_flag */ #define R_IMF_CINEON_FLAG_LOG (1<<0) /* was R_CINEON_LOG */ +/* ImageFormatData.tiff_codec */ +enum { + R_IMF_TIFF_CODEC_DEFLATE = 0, + R_IMF_TIFF_CODEC_LZW = 1, + R_IMF_TIFF_CODEC_PACKBITS = 2, + R_IMF_TIFF_CODEC_NONE = 3, +}; + typedef struct BakeData { struct ImageFormatData im_format; @@ -450,7 +462,7 @@ typedef struct BakeData { short margin, flag; float cage_extrusion; - float pad2; + int pass_filter; char normal_swizzle[3]; char normal_space; @@ -477,6 +489,22 @@ typedef enum BakeSaveMode { R_BAKE_SAVE_EXTERNAL = 1, } BakeSaveMode; +/* bake->pass_filter */ +typedef enum BakePassFilter { + R_BAKE_PASS_FILTER_NONE = 0, + R_BAKE_PASS_FILTER_AO = (1 << 0), + R_BAKE_PASS_FILTER_EMIT = (1 << 1), + R_BAKE_PASS_FILTER_DIFFUSE = (1 << 2), + R_BAKE_PASS_FILTER_GLOSSY = (1 << 3), + R_BAKE_PASS_FILTER_TRANSM = (1 << 4), + R_BAKE_PASS_FILTER_SUBSURFACE = (1 << 5), + R_BAKE_PASS_FILTER_DIRECT = (1 << 6), + R_BAKE_PASS_FILTER_INDIRECT = (1 << 7), + R_BAKE_PASS_FILTER_COLOR = (1 << 8), +} BakePassFilter; + +#define R_BAKE_PASS_FILTER_ALL (~0) + /* *************************************************************** */ /* Render Data */ @@ -698,10 +726,13 @@ typedef struct RenderData { short pad; /* MultiView */ - ListBase views; + ListBase views; /* SceneRenderView */ short actview; short views_format; short pad8[2]; + + /* Motion blur shutter */ + struct CurveMapping mblur_shutter_curve; } RenderData; /* *************************************************************** */ @@ -764,12 +795,18 @@ typedef struct RecastData { int vertsperpoly; float detailsampledist; float detailsamplemaxerror; - short pad1, pad2; + char partitioning; + char pad1; + short pad2; } RecastData; +#define RC_PARTITION_WATERSHED 0 +#define RC_PARTITION_MONOTONE 1 +#define RC_PARTITION_LAYERS 2 + typedef struct GameData { - /* standalone player */ + /* standalone player */ struct GameFraming framing; short playerflag, xplay, yplay, freqplay; short depth, attrib, rt1, rt2; @@ -792,7 +829,7 @@ typedef struct GameData { /* * bit 3: (gameengine): Activity culling is enabled. - * bit 5: (gameengine) : enable Bullet DBVT tree for view frustrum culling + * bit 5: (gameengine) : enable Bullet DBVT tree for view frustum culling */ int flag; short mode, matmode; @@ -907,6 +944,7 @@ typedef enum StereoViews { STEREO_MONO_ID = 3, } StereoViews; +/* *************************************************************** */ /* Markers */ typedef struct TimeMarker { @@ -1037,6 +1075,7 @@ typedef struct Sculpt { typedef struct UvSculpt { Paint paint; } UvSculpt; + /* ------------------------------------------- */ /* Vertex Paint */ @@ -1062,6 +1101,65 @@ enum { VP_ONLYVGROUP = (1 << 7) /* weight paint only */ }; +/* ------------------------------------------- */ +/* GPencil Stroke Sculpting */ + +/* Brush types */ +typedef enum eGP_EditBrush_Types { + GP_EDITBRUSH_TYPE_SMOOTH = 0, + GP_EDITBRUSH_TYPE_THICKNESS = 1, + GP_EDITBRUSH_TYPE_GRAB = 2, + GP_EDITBRUSH_TYPE_PUSH = 3, + GP_EDITBRUSH_TYPE_TWIST = 4, + GP_EDITBRUSH_TYPE_PINCH = 5, + GP_EDITBRUSH_TYPE_RANDOMIZE = 6, + GP_EDITBRUSH_TYPE_SUBDIVIDE = 7, + GP_EDITBRUSH_TYPE_SIMPLIFY = 8, + GP_EDITBRUSH_TYPE_CLONE = 9, + + /* !!! Update GP_EditBrush_Data brush[###]; below !!! */ + TOT_GP_EDITBRUSH_TYPES +} eGP_EditBrush_Types; + + +/* Settings for a GPencil Stroke Sculpting Brush */ +typedef struct GP_EditBrush_Data { + short size; /* radius of brush */ + short flag; /* eGP_EditBrush_Flag */ + float strength; /* strength of effect */ +} GP_EditBrush_Data; + +/* GP_EditBrush_Data.flag */ +typedef enum eGP_EditBrush_Flag { + /* invert the effect of the brush */ + GP_EDITBRUSH_FLAG_INVERT = (1 << 0), + /* adjust strength using pen pressure */ + GP_EDITBRUSH_FLAG_USE_PRESSURE = (1 << 1), + + /* strength of brush falls off with distance from cursor */ + GP_EDITBRUSH_FLAG_USE_FALLOFF = (1 << 2), + + /* smooth brush affects pressure values as well */ + GP_EDITBRUSH_FLAG_SMOOTH_PRESSURE = (1 << 3) +} eGP_EditBrush_Flag; + + + +/* GPencil Stroke Sculpting Settings */ +typedef struct GP_BrushEdit_Settings { + GP_EditBrush_Data brush[10]; /* TOT_GP_EDITBRUSH_TYPES */ + void *paintcursor; /* runtime */ + + int brushtype; /* eGP_EditBrush_Types */ + int flag; /* eGP_BrushEdit_SettingsFlag */ +} GP_BrushEdit_Settings; + +/* GP_BrushEdit_Settings.flag */ +typedef enum eGP_BrushEdit_SettingsFlag { + /* only affect selected points */ + GP_BRUSHEDIT_FLAG_SELECT_MASK = (1 << 0) +} eGP_BrushEdit_SettingsFlag; + /* *************************************************************** */ /* Transform Orientations */ @@ -1129,6 +1227,10 @@ typedef struct UnifiedPaintSettings { char draw_anchored; char do_linear_conversion; + /* store last location of stroke or whether the mesh was hit. Valid only while stroke is active */ + float last_location[3]; + int last_hit; + float anchored_initial_mouse[2]; /* radius of brush, premultiplied with pressure. @@ -1164,6 +1266,44 @@ typedef enum { UNIFIED_PAINT_BRUSH_ALPHA_PRESSURE = (1 << 4) } UnifiedPaintSettingsFlags; + +typedef struct CurvePaintSettings { + char curve_type; + char flag; + char depth_mode; + char surface_plane; + int error_threshold; + float radius_min, radius_max; + float radius_taper_start, radius_taper_end; + float radius_offset; + float corner_angle; +} CurvePaintSettings; + +/* CurvePaintSettings.flag */ +enum { + CURVE_PAINT_FLAG_CORNERS_DETECT = (1 << 0), + CURVE_PAINT_FLAG_PRESSURE_RADIUS = (1 << 1), + CURVE_PAINT_FLAG_DEPTH_STROKE_ENDPOINTS = (1 << 2), +}; + +/* CurvePaintSettings.depth_mode */ +enum { + CURVE_PAINT_PROJECT_CURSOR = 0, + CURVE_PAINT_PROJECT_SURFACE = 1, +}; + +/* CurvePaintSettings.surface_plane */ +enum { + CURVE_PAINT_SURFACE_PLANE_NORMAL_VIEW = 0, + CURVE_PAINT_SURFACE_PLANE_NORMAL_SURFACE = 1, + CURVE_PAINT_SURFACE_PLANE_VIEW = 2, +}; + + +/* *************************************************************** */ +/* Stats */ + +/* Stats for Meshes */ typedef struct MeshStatVis { char type; char _pad1[2]; @@ -1220,7 +1360,13 @@ typedef struct ToolSettings { char gpencil_flags; /* flags/options for how the tool works */ char gpencil_src; /* for main 3D view Grease Pencil, where data comes from */ - char pad[4]; + char gpencil_v3d_align; /* stroke placement settings: 3D View */ + char gpencil_v2d_align; /* : General 2D Editor */ + char gpencil_seq_align; /* : Sequencer Preview */ + char gpencil_ima_align; /* : Image Editor */ + + /* Grease Pencil Sculpt */ + struct GP_BrushEdit_Settings gp_sculpt; /* Image Paint (8 byttse aligned please!) */ struct ImagePaintSettings imapaint; @@ -1236,10 +1382,10 @@ typedef struct ToolSettings { /* Auto-Keying Mode */ short autokey_mode, autokey_flag; /* defines in DNA_userdef_types.h */ + char keyframe_type; /* keyframe type (see DNA_curve_types.h) */ /* Multires */ char multires_subdiv_type; - char pad3[1]; /* Skeleton generation */ short skgen_resolution; @@ -1305,6 +1451,8 @@ typedef struct ToolSettings { /* Unified Paint Settings */ struct UnifiedPaintSettings unified_paint_settings; + struct CurvePaintSettings curve_paint_settings; + struct MeshStatVis statvis; } ToolSettings; @@ -1411,7 +1559,7 @@ typedef struct Scene { void *pad1; struct DagForest *theDag; short dagflags; - short recalc; /* recalc = counterpart of ob->recalc */ + short pad3; /* User-Defined KeyingSets */ int active_keyingset; /* index of the active KeyingSet. first KeyingSet has index 1, 'none' active is 0, 'add new' is -1 */ @@ -1539,7 +1687,7 @@ typedef struct Scene { #define R_FREE_IMAGE 0x0100 #define R_SINGLE_LAYER 0x0200 #define R_EXR_TILE_FILE 0x0400 -#define R_COMP_FREE 0x0800 +/* #define R_COMP_FREE 0x0800 */ #define R_NO_IMAGE_LOAD 0x1000 #define R_NO_TEX 0x2000 #define R_NO_FRAME_UPDATE 0x4000 @@ -1633,16 +1781,17 @@ extern const char *RE_engine_id_CYCLES; /* **************** SCENE ********************* */ +/* note that much higher maxframes give imprecise sub-frames, see: T46859 */ /* for general use */ -#define MAXFRAME 300000 -#define MAXFRAMEF 300000.0f +#define MAXFRAME 500000 +#define MAXFRAMEF 500000.0f #define MINFRAME 0 #define MINFRAMEF 0.0f /* (minimum frame number for current-frame) */ -#define MINAFRAME -300000 -#define MINAFRAMEF -300000.0f +#define MINAFRAME -500000 +#define MINAFRAMEF -500000.0f /* depricate this! */ #define TESTBASE(v3d, base) ( \ @@ -1735,9 +1884,6 @@ extern const char *RE_engine_id_CYCLES; #define SCE_SELECT_POINT 2 #define SCE_SELECT_END 4 -/* sce->recalc (now in use by previewrender) */ -#define SCE_PRV_CHANGED 1 - /* toolsettings->prop_mode (proportional falloff) */ #define PROP_SMOOTH 0 #define PROP_SPHERE 1 @@ -1912,7 +2058,12 @@ typedef enum ImagePaintMode { #define EDGE_MODE_TAG_FREESTYLE 5 /* toolsettings->gpencil_flags */ -#define GP_TOOL_FLAG_PAINTSESSIONS_ON (1<<0) +typedef enum eGPencil_Flags { + /* "Continuous Drawing" - The drawing operator enters a mode where multiple strokes can be drawn */ + GP_TOOL_FLAG_PAINTSESSIONS_ON = (1 << 0), + /* When creating new frames, the last frame gets used as the basis for the new one */ + GP_TOOL_FLAG_RETAIN_LAST = (1 << 1), +} eGPencil_Flags; /* toolsettings->gpencil_src */ typedef enum eGPencil_Source_3D { @@ -1920,6 +2071,22 @@ typedef enum eGPencil_Source_3D { GP_TOOL_SOURCE_OBJECT = 1 } eGPencil_Source_3d; +/* toolsettings->gpencil_*_align - Stroke Placement mode flags */ +typedef enum eGPencil_Placement_Flags { + /* New strokes are added in viewport/data space (i.e. not screen space) */ + GP_PROJECT_VIEWSPACE = (1 << 0), + + /* Viewport space, but relative to render canvas (Sequencer Preview Only) */ + GP_PROJECT_CANVAS = (1 << 1), + + /* Project into the screen's Z values */ + GP_PROJECT_DEPTH_VIEW = (1 << 2), + GP_PROJECT_DEPTH_STROKE = (1 << 3), + + /* "Use Endpoints" */ + GP_PROJECT_DEPTH_STROKE_ENDPOINTS = (1 << 4), +} eGPencil_Placement_Flags; + /* toolsettings->particle flag */ #define PE_KEEP_LENGTHS 1 #define PE_LOCK_FIRST 2 |