Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesdna/DNA_scene_types.h')
-rw-r--r--source/blender/makesdna/DNA_scene_types.h205
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