diff options
Diffstat (limited to 'source/blender/makesdna/DNA_scene_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 259 |
1 files changed, 220 insertions, 39 deletions
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 250c600fcaf..869f1cb426d 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -120,7 +120,11 @@ typedef struct SceneRenderLayer { struct Group *light_override; unsigned int lay; /* scene->lay itself has priority over this */ + unsigned int lay_zmask; /* has to be after lay, this is for Z-masking */ int layflag; + + int pad; + int passflag; /* pass_xor has to be after passflag */ int pass_xor; } SceneRenderLayer; @@ -134,9 +138,11 @@ typedef struct SceneRenderLayer { #define SCE_LAY_STRAND 32 /* flags between 32 and 0x8000 are set to 1 already, for future options */ -#define SCE_LAY_ALL_Z 0x8000 -#define SCE_LAY_XOR 0x10000 -#define SCE_LAY_DISABLE 0x20000 +#define SCE_LAY_ALL_Z 0x8000 +#define SCE_LAY_XOR 0x10000 +#define SCE_LAY_DISABLE 0x20000 +#define SCE_LAY_ZMASK 0x40000 +#define SCE_LAY_NEG_ZMASK 0x80000 /* srl->passflag */ #define SCE_PASS_COMBINED 1 @@ -153,6 +159,8 @@ typedef struct SceneRenderLayer { #define SCE_PASS_INDEXOB 2048 #define SCE_PASS_UV 4096 #define SCE_PASS_RADIO 8192 +#define SCE_PASS_MIST 16384 + /* note, srl->passflag is treestore element 'nr' in outliner, short still... */ @@ -240,9 +248,9 @@ typedef struct RenderData { * The number of samples to use per pixel. */ short osa; - - short frs_sec, edgeint; + short frs_sec, edgeint; + /* safety, border and display rect */ rctf safety, border; rcti disprect; @@ -250,7 +258,8 @@ typedef struct RenderData { /* information on different layers to be rendered */ ListBase layers; short actlay, pad; - int pad2; + + float frs_sec_base; /** * Value used to define filter size for all filter options */ @@ -264,6 +273,8 @@ typedef struct RenderData { /* Bake Render options */ short bake_osa, bake_filter, bake_mode, bake_flag; + short bake_normal_space, bpad; + float bake_maxdist, bake_biasdist, bake_pad; /* yafray: global panel params. TODO: move elsewhere */ short GIquality, GIcache, GImethod, GIphotons, GIdirect; @@ -271,15 +282,48 @@ typedef struct RenderData { int GIdepth, GIcausdepth, GIpixelspersample; int GIphotoncount, GImixphotons; float GIphotonradius; - int YF_numprocs, YF_raydepth, YF_AApasses, YF_AAsamples; + int YF_raydepth, YF_AApasses, YF_AAsamples, yfpad2; float GIshadowquality, GIrefinement, GIpower, GIindirpower; float YF_gamma, YF_exposure, YF_raybias, YF_AApixelsize, YF_AAthreshold; /* paths to backbufffer, output, ftype */ - char backbuf[160], pic[160], ftype[160]; + char backbuf[160], pic[160]; + + /* stamps flags. */ + int stamp; + short stamp_font_id, pad3; /* select one of blenders bitmap fonts */ + + /* stamp info user data. */ + char stamp_udata[160]; + /* foreground/background color. */ + float fg_stamp[4]; + float bg_stamp[4]; + + /* render simplify */ + int simplify_subsurf; + int simplify_shadowsamples; + float simplify_particles; + float simplify_aosss; + + /* cineon */ + short cineonwhite, cineonblack; + float cineongamma; } RenderData; +/* control render convert and shading engine */ +typedef struct RenderProfile { + struct RenderProfile *next, *prev; + char name[32]; + + short particle_perc; + short subsurf_max; + short shadbufsample_max; + short pad1; + + float ao_error, pad2; + +} RenderProfile; typedef struct GameFraming { float col[3]; @@ -297,11 +341,34 @@ typedef struct TimeMarker { unsigned int flag; } TimeMarker; -struct ImagePaintSettings { +typedef struct ImagePaintSettings { struct Brush *brush; short flag, tool; int pad3; -}; +} ImagePaintSettings; + +typedef struct ParticleBrushData { + short size, strength; /* common settings */ + short step, invert; /* for specific brushes only */ +} ParticleBrushData; + +typedef struct ParticleEditSettings { + short flag; + short totrekey; + short totaddkey; + short brushtype; + + ParticleBrushData brush[7]; /* 7 = PE_TOT_BRUSH */ + + float emitterdist; + int draw_timed; +} ParticleEditSettings; + +typedef struct TransformOrientation { + struct TransformOrientation *next, *prev; + char name[36]; + float mat[3][3]; +} TransformOrientation; typedef struct ToolSettings { /* Subdivide Settings */ @@ -333,10 +400,14 @@ typedef struct ToolSettings { short uvcalc_mapalign; short uvcalc_flag; - short pad2; - - /* Image Paint (8 byte aligned please!) */ + /* Auto-IK */ + short autoik_chainlen; + + /* Image Paint (8 byttse aligned please!) */ struct ImagePaintSettings imapaint; + + /* Particle Editing */ + struct ParticleEditSettings particle; /* Select Group Threshold */ float select_thresh; @@ -352,7 +423,21 @@ typedef struct ToolSettings { /* Multires */ char multires_subdiv_type; - char pad4[2]; + /* Skeleton generation */ + short skgen_resolution; + float skgen_threshold_internal; + float skgen_threshold_external; + float skgen_length_ratio; + float skgen_length_limit; + float skgen_angle_limit; + float skgen_correlation_limit; + float skgen_symmetry_limit; + short skgen_options; + char skgen_postpro; + char skgen_postpro_passes; + char skgen_subdivisions[3]; + + char pad3[5]; } ToolSettings; /* Used by all brushes to store their properties, which can be directly set @@ -362,20 +447,25 @@ typedef struct BrushData { short size; char strength, dir; /* Not used for smooth brush */ - char airbrush; char view; + char flag; char pad[2]; } BrushData; struct SculptSession; typedef struct SculptData { + /* Note! all pointers in this struct must be duplicated header_info.c's copy_scene function */ + /* Data stored only from entering sculptmode until exiting sculptmode */ struct SculptSession *session; /* Pointers to all of sculptmodes's textures */ struct MTex *mtex[10]; + /* Editable brush shape */ + struct CurveMapping *cumap; + /* Settings for each brush */ BrushData drawbrush, smoothbrush, pinchbrush, inflatebrush, grabbrush, layerbrush, flattenbrush; short brush_type; @@ -388,8 +478,7 @@ typedef struct SculptData char texsep; char averaging; - - char draw_flag; + char flags; /* Control tablet input */ char tablet_size, tablet_strength; @@ -397,6 +486,10 @@ typedef struct SculptData /* Symmetry is separate from the other BrushData because the same settings are always used for all brush types */ char symm; + + /* Added to store if the 'Rake' setting has been set */ + char rake; + char pad[7]; } SculptData; typedef struct Scene { @@ -417,15 +510,16 @@ typedef struct Scene { /* editmode stuff */ float editbutsize; /* size of normals */ - short selectmode; + short selectmode; /* for mesh only! */ short proportional, prop_mode; + short automerge, pad5, pad6, pad7; short use_nodes; + struct bNodeTree *nodetree; - void *ed; + void *ed; /* sequence editor data is allocated here */ struct Radio *radio; - void *sumohandle; struct GameFraming framing; @@ -439,9 +533,10 @@ typedef struct Scene { ScriptLink scriptlink; ListBase markers; + ListBase transform_spaces; - short jumpframe; - short pad1, pad2, pad3; + short jumpframe, pad1; + short snap_flag, snap_target; /* none of the dependancy graph vars is mean to be saved */ struct DagForest *theDag; @@ -483,10 +578,17 @@ typedef struct Scene { #define R_GAUSS 0x20000 /* fbuf obsolete... */ #define R_FBUF 0x40000 - /* threads obsolete... is there for old files */ + /* threads obsolete... is there for old files, now use for autodetect threads */ #define R_THREADS 0x80000 + /* Use the same flag for autothreads */ +#define R_FIXED_THREADS 0x80000 + #define R_SPEED 0x100000 #define R_SSS 0x200000 +#define R_NO_OVERWRITE 0x400000 /* skip existing files */ +#define R_TOUCH 0x800000 /* touch files before rendering */ +#define R_SIMPLIFY 0x1000000 + /* filtertype */ #define R_FILTER_BOX 0 @@ -496,6 +598,7 @@ typedef struct Scene { #define R_FILTER_CATROM 4 #define R_FILTER_GAUSS 5 #define R_FILTER_MITCH 6 +#define R_FILTER_FAST_GAUSS 7 /* note, this is only used for nodes at the moment */ /* yafray: renderer flag (not only exclusive to yafray) */ #define R_INTERN 0 @@ -516,8 +619,21 @@ typedef struct Scene { #define R_EXR_TILE_FILE 0x0400 #define R_COMP_FREE 0x0800 #define R_NO_IMAGE_LOAD 0x1000 -#define R_NO_TEX 0x2000 - +#define R_NO_TEX 0x2000 +#define R_STAMP_INFO 0x4000 +#define R_FULL_SAMPLE 0x8000 + +/* r->stamp */ +#define R_STAMP_TIME 0x0001 +#define R_STAMP_FRAME 0x0002 +#define R_STAMP_DATE 0x0004 +#define R_STAMP_CAMERA 0x0008 +#define R_STAMP_SCENE 0x0010 +#define R_STAMP_NOTE 0x0020 +#define R_STAMP_DRAW 0x0040 /* draw in the image */ +#define R_STAMP_MARKER 0x0080 +#define R_STAMP_FILENAME 0x0100 +#define R_STAMP_SEQSTRIP 0x0200 /* alphamode */ #define R_ADDSKY 0 @@ -533,7 +649,7 @@ typedef struct Scene { #define R_TARGA 0 #define R_IRIS 1 #define R_HAMX 2 -#define R_FTYPE 3 +#define R_FTYPE 3 /* ftype is nomore */ #define R_JPEG90 4 #define R_MOVIE 5 #define R_IRIZ 7 @@ -552,16 +668,27 @@ typedef struct Scene { #define R_CINEON 26 #define R_DPX 27 #define R_MULTILAYER 28 +#define R_DDS 29 /* subimtype, flag options for imtype */ #define R_OPENEXR_HALF 1 #define R_OPENEXR_ZBUF 2 #define R_PREVIEW_JPG 4 +#define R_CINEON_LOG 8 +#define R_TIFF_16BIT 16 /* bake_mode: same as RE_BAKE_xxx defines */ /* bake_flag: */ -#define R_BAKE_CLEAR 1 -#define R_BAKE_OSA 2 +#define R_BAKE_CLEAR 1 +#define R_BAKE_OSA 2 +#define R_BAKE_TO_ACTIVE 4 +#define R_BAKE_NORMALIZE 8 + +/* bake_normal_space */ +#define R_BAKE_SPACE_CAMERA 0 +#define R_BAKE_SPACE_WORLD 1 +#define R_BAKE_SPACE_OBJECT 2 +#define R_BAKE_SPACE_TANGENT 3 /* **************** SCENE ********************* */ #define RAD_PHASE_PATCHES 1 @@ -569,14 +696,24 @@ typedef struct Scene { /* base->flag is in DNA_object_types.h */ -/* sce->flag */ -#define SCE_ADDSCENAME 1 +/* scene->snap_flag */ +#define SCE_SNAP 1 +/* scene->snap_target */ +#define SCE_SNAP_TARGET_CLOSEST 0 +#define SCE_SNAP_TARGET_CENTER 1 +#define SCE_SNAP_TARGET_MEDIAN 2 +#define SCE_SNAP_TARGET_ACTIVE 3 /* sce->selectmode */ -#define SCE_SELECT_VERTEX 1 +#define SCE_SELECT_VERTEX 1 /* for mesh */ #define SCE_SELECT_EDGE 2 #define SCE_SELECT_FACE 4 +/* sce->selectmode for particles */ +#define SCE_SELECT_PATH 1 +#define SCE_SELECT_POINT 2 +#define SCE_SELECT_END 4 + /* sce->recalc (now in use by previewrender) */ #define SCE_PRV_CHANGED 1 @@ -603,21 +740,25 @@ typedef struct Scene { #define FFMPEG_MULTIPLEX_AUDIO 1 #define FFMPEG_AUTOSPLIT_OUTPUT 2 +/* Sculpt brush flags */ +#define SCULPT_BRUSH_AIRBRUSH 1 +#define SCULPT_BRUSH_ANCHORED 2 +/* SculptData.flags */ +#define SCULPT_INPUT_SMOOTH 1 +#define SCULPT_DRAW_FAST 2 +#define SCULPT_DRAW_BRUSH 4 /* SculptData.brushtype */ -#define DRAW_BRUSH 1 -#define SMOOTH_BRUSH 2 -#define PINCH_BRUSH 3 +#define DRAW_BRUSH 1 +#define SMOOTH_BRUSH 2 +#define PINCH_BRUSH 3 #define INFLATE_BRUSH 4 -#define GRAB_BRUSH 5 -#define LAYER_BRUSH 6 +#define GRAB_BRUSH 5 +#define LAYER_BRUSH 6 #define FLATTEN_BRUSH 7 /* SculptData.texrept */ #define SCULPTREPT_DRAG 1 #define SCULPTREPT_TILE 2 #define SCULPTREPT_3D 3 -/* SculptData.draw_flag */ -#define SCULPTDRAW_FAST 1 -#define SCULPTDRAW_BRUSH 2 #define SYMM_X 1 #define SYMM_Y 2 @@ -628,6 +769,28 @@ typedef struct Scene { #define IMAGEPAINT_DRAW_TOOL 2 #define IMAGEPAINT_DRAW_TOOL_DRAWING 4 +/* toolsettings->particle flag */ +#define PE_KEEP_LENGTHS 1 +#define PE_LOCK_FIRST 2 +#define PE_DEFLECT_EMITTER 4 +#define PE_INTERPOLATE_ADDED 8 +#define PE_SHOW_CHILD 16 +#define PE_SHOW_TIME 32 +#define PE_X_MIRROR 64 + +/* toolsetting->particle brushtype */ +#define PE_BRUSH_NONE -1 +#define PE_BRUSH_COMB 0 +#define PE_BRUSH_CUT 1 +#define PE_BRUSH_LENGTH 2 +#define PE_BRUSH_PUFF 3 +#define PE_BRUSH_ADD 4 +#define PE_BRUSH_WEIGHT 5 +#define PE_BRUSH_SMOOTH 6 + +/* this must equal ParticleEditSettings.brush array size */ +#define PE_TOT_BRUSH 7 + /* toolsettings->retopo_mode */ #define RETOPO 1 #define RETOPO_PAINT 2 @@ -637,6 +800,24 @@ typedef struct Scene { #define RETOPO_LINE 2 #define RETOPO_ELLIPSE 4 +/* toolsettings->skgen_options */ +#define SKGEN_FILTER_INTERNAL 1 +#define SKGEN_FILTER_EXTERNAL 2 +#define SKGEN_SYMMETRY 4 +#define SKGEN_CUT_LENGTH 8 +#define SKGEN_CUT_ANGLE 16 +#define SKGEN_CUT_CORRELATION 32 + +#define SKGEN_SUB_LENGTH 0 +#define SKGEN_SUB_ANGLE 1 +#define SKGEN_SUB_CORRELATION 2 +#define SKGEN_SUB_TOTAL 3 + +/* toolsettings->skgen_postpro */ +#define SKGEN_SMOOTH 0 +#define SKGEN_AVERAGE 1 +#define SKGEN_SHARPEN 2 + #ifdef __cplusplus } #endif |