Blender  V3.3
DNA_scene_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
8 #pragma once
9 
10 #include "DNA_defs.h"
11 
12 /* XXX(campbell): temp feature. */
13 #define DURIAN_CAMERA_SWITCH
14 
15 /* check for cyclic set-scene,
16  * libs can cause this case which is normally prevented, see (T#####) */
17 #define USE_SETSCENE_CHECK
18 
19 #include "DNA_ID.h"
20 #include "DNA_color_types.h" /* color management */
21 #include "DNA_customdata_types.h" /* Scene's runtime custom-data masks. */
22 #include "DNA_layer_types.h"
23 #include "DNA_listBase.h"
24 #include "DNA_vec_types.h"
25 #include "DNA_view3d_types.h"
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 struct AnimData;
32 struct Brush;
33 struct Collection;
34 struct ColorSpace;
35 struct CurveMapping;
36 struct CurveProfile;
38 struct Editing;
39 struct Image;
40 struct MovieClip;
41 struct Object;
42 struct Scene;
43 struct SceneCollection;
44 struct World;
45 struct bGPdata;
46 struct bNodeTree;
47 
48 /* ************************************************************* */
49 /* Scene Data */
50 
51 /* ************************************************************* */
52 /* Output Format Data */
53 
54 typedef struct AviCodecData {
56  void *lpFormat;
58  void *lpParms;
60  unsigned int cbFormat;
62  unsigned int cbParms;
63 
65  unsigned int fccType;
67  unsigned int fccHandler;
69  unsigned int dwKeyFrameEvery;
71  unsigned int dwQuality;
73  unsigned int dwBytesPerSecond;
75  unsigned int dwFlags;
77  unsigned int dwInterleaveEvery;
78  char _pad[4];
79 
80  char avicodecname[128];
82 
83 typedef enum eFFMpegPreset {
85 
86 #ifdef DNA_DEPRECATED_ALLOW
87  /* Previously used by h.264 to control encoding speed vs. file size. */
88  FFM_PRESET_ULTRAFAST = 1, /* DEPRECATED */
89  FFM_PRESET_SUPERFAST = 2, /* DEPRECATED */
90  FFM_PRESET_VERYFAST = 3, /* DEPRECATED */
91  FFM_PRESET_FASTER = 4, /* DEPRECATED */
92  FFM_PRESET_FAST = 5, /* DEPRECATED */
93  FFM_PRESET_MEDIUM = 6, /* DEPRECATED */
94  FFM_PRESET_SLOW = 7, /* DEPRECATED */
95  FFM_PRESET_SLOWER = 8, /* DEPRECATED */
96  FFM_PRESET_VERYSLOW = 9, /* DEPRECATED */
97 #endif
98 
99  /* Used by WEBM/VP9 and h.264 to control encoding speed vs. file size.
100  * WEBM/VP9 use these values directly, whereas h.264 map those to
101  * respectively the MEDIUM, SLOWER, and SUPERFAST presets.
102  */
110 
111 /* Mapping from easily-understandable descriptions to CRF values.
112  * Assumes we output 8-bit video. Needs to be remapped if 10-bit
113  * is output.
114  * We use a slightly wider than "subjectively sane range" according
115  * to https://trac.ffmpeg.org/wiki/Encode/H.264#a1.ChooseaCRFvalue
116  */
117 typedef enum eFFMpegCrf {
127 
128 typedef enum eFFMpegAudioChannels {
135 
136 typedef struct FFMpegCodecData {
137  int type;
138  int codec;
145  int gop_size;
148  int flags;
152 
157  int mux_rate;
158  void *_pad1;
160 
161 /* ************************************************************* */
162 /* Audio */
163 
164 typedef struct AudioData {
165  int mixrate; /* 2.5: now in FFMpegCodecData: audio_mixrate */
166  float main; /* 2.5: now in FFMpegCodecData: audio_volume */
170  short flag;
171  char _pad[2];
172  float volume;
173  char _pad2[4];
175 
176 /* *************************************************************** */
177 /* Render Layers */
178 
180 typedef struct SceneRenderLayer {
182 
184  char name[64] DNA_DEPRECATED;
185 
187  struct Material *mat_override DNA_DEPRECATED;
188 
190  unsigned int lay DNA_DEPRECATED;
192  unsigned int lay_zmask DNA_DEPRECATED;
193  unsigned int lay_exclude DNA_DEPRECATED;
195  int layflag DNA_DEPRECATED;
196 
197  /* pass_xor has to be after passflag */
199  int passflag DNA_DEPRECATED;
201  int pass_xor DNA_DEPRECATED;
202 
204  int samples DNA_DEPRECATED;
206  float pass_alpha_threshold DNA_DEPRECATED;
207 
210 
212  struct FreestyleConfig freestyleConfig DNA_DEPRECATED;
214 
216 #define SCE_LAY_SOLID (1 << 0)
217 #define SCE_LAY_UNUSED_1 (1 << 1)
218 #define SCE_LAY_UNUSED_2 (1 << 2)
219 #define SCE_LAY_UNUSED_3 (1 << 3)
220 #define SCE_LAY_SKY (1 << 4)
221 #define SCE_LAY_STRAND (1 << 5)
222 #define SCE_LAY_FRS (1 << 6)
223 #define SCE_LAY_AO (1 << 7)
224 #define SCE_LAY_VOLUMES (1 << 8)
225 #define SCE_LAY_MOTION_BLUR (1 << 9)
226 
227 /* Flags between (1 << 9) and (1 << 15) are set to 1 already, for future options. */
228 #define SCE_LAY_FLAG_DEFAULT ((1 << 15) - 1)
229 
230 #define SCE_LAY_UNUSED_4 (1 << 15)
231 #define SCE_LAY_UNUSED_5 (1 << 16)
232 #define SCE_LAY_DISABLE (1 << 17)
233 #define SCE_LAY_UNUSED_6 (1 << 18)
234 #define SCE_LAY_UNUSED_7 (1 << 19)
235 
237 typedef enum eScenePassType {
238  SCE_PASS_COMBINED = (1 << 0),
239  SCE_PASS_Z = (1 << 1),
240  SCE_PASS_UNUSED_1 = (1 << 2), /* RGBA */
241  SCE_PASS_UNUSED_2 = (1 << 3), /* DIFFUSE */
242  SCE_PASS_UNUSED_3 = (1 << 4), /* SPEC */
243  SCE_PASS_SHADOW = (1 << 5),
244  SCE_PASS_AO = (1 << 6),
245  SCE_PASS_POSITION = (1 << 7),
246  SCE_PASS_NORMAL = (1 << 8),
247  SCE_PASS_VECTOR = (1 << 9),
248  SCE_PASS_UNUSED_5 = (1 << 10), /* REFRACT */
249  SCE_PASS_INDEXOB = (1 << 11),
250  SCE_PASS_UV = (1 << 12),
251  SCE_PASS_UNUSED_6 = (1 << 13), /* INDIRECT */
252  SCE_PASS_MIST = (1 << 14),
253  SCE_PASS_UNUSED_7 = (1 << 15), /* RAYHITS */
254  SCE_PASS_EMIT = (1 << 16),
255  SCE_PASS_ENVIRONMENT = (1 << 17),
256  SCE_PASS_INDEXMA = (1 << 18),
269  SCE_PASS_ROUGHNESS = (1u << 31u),
271 
272 #define RE_PASSNAME_DEPRECATED "Deprecated"
273 
274 #define RE_PASSNAME_COMBINED "Combined"
275 #define RE_PASSNAME_Z "Depth"
276 #define RE_PASSNAME_VECTOR "Vector"
277 #define RE_PASSNAME_POSITION "Position"
278 #define RE_PASSNAME_NORMAL "Normal"
279 #define RE_PASSNAME_UV "UV"
280 #define RE_PASSNAME_EMIT "Emit"
281 #define RE_PASSNAME_SHADOW "Shadow"
282 
283 #define RE_PASSNAME_AO "AO"
284 #define RE_PASSNAME_ENVIRONMENT "Env"
285 #define RE_PASSNAME_INDEXOB "IndexOB"
286 #define RE_PASSNAME_INDEXMA "IndexMA"
287 #define RE_PASSNAME_MIST "Mist"
288 
289 #define RE_PASSNAME_DIFFUSE_DIRECT "DiffDir"
290 #define RE_PASSNAME_DIFFUSE_INDIRECT "DiffInd"
291 #define RE_PASSNAME_DIFFUSE_COLOR "DiffCol"
292 #define RE_PASSNAME_GLOSSY_DIRECT "GlossDir"
293 #define RE_PASSNAME_GLOSSY_INDIRECT "GlossInd"
294 #define RE_PASSNAME_GLOSSY_COLOR "GlossCol"
295 #define RE_PASSNAME_TRANSM_DIRECT "TransDir"
296 #define RE_PASSNAME_TRANSM_INDIRECT "TransInd"
297 #define RE_PASSNAME_TRANSM_COLOR "TransCol"
298 
299 #define RE_PASSNAME_SUBSURFACE_DIRECT "SubsurfaceDir"
300 #define RE_PASSNAME_SUBSURFACE_INDIRECT "SubsurfaceInd"
301 #define RE_PASSNAME_SUBSURFACE_COLOR "SubsurfaceCol"
302 
303 #define RE_PASSNAME_FREESTYLE "Freestyle"
304 #define RE_PASSNAME_BLOOM "BloomCol"
305 #define RE_PASSNAME_VOLUME_LIGHT "VolumeDir"
306 
308 typedef struct SceneRenderView {
310 
312  char name[64];
314  char suffix[64];
315 
316  int viewflag;
317  char _pad2[4];
318 
320 
322 #define SCE_VIEW_DISABLE (1 << 0)
323 
325 enum {
328 };
329 
331 enum {
335 };
336 
337 typedef struct Stereo3dFormat {
338  short flag;
345  char _pad[3];
347 
349 typedef enum eStereoDisplayMode {
356 
358 typedef enum eStereo3dFlag {
359  S3D_INTERLACE_SWAP = (1 << 0),
361  S3D_SQUEEZED_FRAME = (1 << 2),
363 
365 typedef enum eStereo3dAnaglyphType {
370 
377 
378 /* *************************************************************** */
379 
380 /* Generic image format settings,
381  * this is used for NodeImageFile and IMAGE_OT_save_as operator too.
382  *
383  * NOTE: its a bit strange that even though this is an image format struct
384  * the imtype can still be used to select video formats.
385  * RNA ensures these enum's are only selectable for render output.
386  */
387 typedef struct ImageFormatData {
392  char imtype;
396  char depth;
397 
399  char planes;
401  char flag;
402 
404  char quality;
406  char compress;
407 
408  /* --- format specific --- */
409 
410  /* OpenEXR */
411  char exr_codec;
412 
413  /* Cineon */
417 
418  /* Jpeg2000 */
419  char jp2_flag;
420  char jp2_codec;
421 
422  /* TIFF */
424 
425  char _pad[4];
426 
427  /* Multiview */
430 
431  /* color management */
433  char _pad1[7];
438 
440 #define R_IMF_IMTYPE_TARGA 0
441 #define R_IMF_IMTYPE_IRIS 1
442 /* #define R_HAMX 2 */ /* DEPRECATED */
443 /* #define R_FTYPE 3 */ /* DEPRECATED */
444 #define R_IMF_IMTYPE_JPEG90 4
445 /* #define R_MOVIE 5 */ /* DEPRECATED */
446 #define R_IMF_IMTYPE_IRIZ 7
447 #define R_IMF_IMTYPE_RAWTGA 14
448 #define R_IMF_IMTYPE_AVIRAW 15
449 #define R_IMF_IMTYPE_AVIJPEG 16
450 #define R_IMF_IMTYPE_PNG 17
451 /* #define R_IMF_IMTYPE_AVICODEC 18 */ /* DEPRECATED */
452 /* #define R_IMF_IMTYPE_QUICKTIME 19 */ /* DEPRECATED */
453 #define R_IMF_IMTYPE_BMP 20
454 #define R_IMF_IMTYPE_RADHDR 21
455 #define R_IMF_IMTYPE_TIFF 22
456 #define R_IMF_IMTYPE_OPENEXR 23
457 #define R_IMF_IMTYPE_FFMPEG 24
458 /* #define R_IMF_IMTYPE_FRAMESERVER 25 */ /* DEPRECATED */
459 #define R_IMF_IMTYPE_CINEON 26
460 #define R_IMF_IMTYPE_DPX 27
461 #define R_IMF_IMTYPE_MULTILAYER 28
462 #define R_IMF_IMTYPE_DDS 29
463 #define R_IMF_IMTYPE_JP2 30
464 #define R_IMF_IMTYPE_H264 31
465 #define R_IMF_IMTYPE_XVID 32
466 #define R_IMF_IMTYPE_THEORA 33
467 #define R_IMF_IMTYPE_PSD 34
468 #define R_IMF_IMTYPE_WEBP 35
469 
470 #define R_IMF_IMTYPE_INVALID 255
471 
473 #define R_IMF_FLAG_ZBUF (1 << 0)
474 #define R_IMF_FLAG_PREVIEW_JPG (1 << 1)
475 
476 /* Return values from #BKE_imtype_valid_depths, note this is depths per channel. */
478 typedef enum eImageFormatDepth {
479  /* 1bits (unused) */
480  R_IMF_CHAN_DEPTH_1 = (1 << 0),
481  /* 8bits (default) */
482  R_IMF_CHAN_DEPTH_8 = (1 << 1),
483  /* 10bits (uncommon, Cineon/DPX support) */
485  /* 12bits (uncommon, jp2/DPX support) */
487  /* 16bits (tiff, half float exr) */
489  /* 24bits (unused) */
491  /* 32bits (full float exr) */
494 
496 #define R_IMF_PLANES_RGB 24
497 #define R_IMF_PLANES_RGBA 32
498 #define R_IMF_PLANES_BW 8
499 
501 #define R_IMF_EXR_CODEC_NONE 0
502 #define R_IMF_EXR_CODEC_PXR24 1
503 #define R_IMF_EXR_CODEC_ZIP 2
504 #define R_IMF_EXR_CODEC_PIZ 3
505 #define R_IMF_EXR_CODEC_RLE 4
506 #define R_IMF_EXR_CODEC_ZIPS 5
507 #define R_IMF_EXR_CODEC_B44 6
508 #define R_IMF_EXR_CODEC_B44A 7
509 #define R_IMF_EXR_CODEC_DWAA 8
510 #define R_IMF_EXR_CODEC_DWAB 9
511 #define R_IMF_EXR_CODEC_MAX 10
512 
514 #define R_IMF_JP2_FLAG_YCC (1 << 0) /* when disabled use RGB */ /* was R_JPEG2K_YCC */
515 #define R_IMF_JP2_FLAG_CINE_PRESET (1 << 1) /* was R_JPEG2K_CINE_PRESET */
516 #define R_IMF_JP2_FLAG_CINE_48 (1 << 2) /* was R_JPEG2K_CINE_48FPS */
517 
519 #define R_IMF_JP2_CODEC_JP2 0
520 #define R_IMF_JP2_CODEC_J2K 1
521 
523 #define R_IMF_CINEON_FLAG_LOG (1 << 0) /* was R_CINEON_LOG */
524 
526 enum {
531 };
532 
534 #define R_IMF_COLOR_MANAGEMENT_FOLLOW_SCENE 0
535 #define R_IMF_COLOR_MANAGEMENT_OVERRIDE 1
536 
537 typedef struct BakeData {
538  struct ImageFormatData im_format;
539 
541  char filepath[1024];
542 
543  short width, height;
544  short margin, flag;
545 
549 
550  char normal_swizzle[3];
552 
553  char target;
554  char save_mode;
556  char _pad[5];
557 
560 
562 typedef enum eBakeMarginType {
566 
568 typedef enum eBakeNormalSwizzle {
576 
578 typedef enum eBakeTarget {
582 
584 typedef enum eBakeSaveMode {
588 
590 typedef enum eBakePassFilter {
602 
603 #define R_BAKE_PASS_FILTER_ALL (~0)
604 
605 /* *************************************************************** */
606 /* Render Data */
607 
608 typedef struct RenderData {
609  struct ImageFormatData im_format;
610 
613 
615  int cfra, sfra, efra;
617  float subframe;
619  int psfra, pefra;
620 
622  short flag, threads;
623 
625 
628  /* XXX deprecated since .2.5 */
630  short stereomode DNA_DEPRECATED;
631 
634 
636  short size;
637 
638  char _pad6[2];
639 
640  /* from buttons: */
644  int xsch;
648  int ysch;
649 
653  int tilex DNA_DEPRECATED;
654  int tiley DNA_DEPRECATED;
655 
656  short planes DNA_DEPRECATED;
657  short imtype DNA_DEPRECATED;
658  short subimtype DNA_DEPRECATED;
659  short quality DNA_DEPRECATED;
660 
662  char _pad7[3];
663 
667  int scemode;
668 
672  int mode;
673 
674  short frs_sec;
675 
680  char alphamode;
681 
682  char _pad0[1];
683 
686 
687  /* information on different layers to be rendered */
691  short actlay DNA_DEPRECATED;
692  char _pad1[2];
693 
697  float xasp, yasp;
698 
700 
704  float gauss;
705 
706  /* color management settings - color profiles, gamma correction, etc */
708 
709  /* Dither noise intensity */
711 
712  /* Bake Render options */
716  char _pad9[6];
718 
719  /* path to render output */
721  /* NOTE: Excluded from `BKE_bpath_foreach_path_` / `scene_foreach_path` code. */
722  char pic[1024];
723 
724  /* stamps flags. */
725  int stamp;
728  char _pad3[2];
729 
730  /* stamp info user data. */
731  char stamp_udata[768];
732 
733  /* foreground/background color. */
734  float fg_stamp[4];
735  float bg_stamp[4];
736 
737  /* sequencer options */
742  char seq_flag;
743  char _pad5[3];
744 
745  /* render simplify */
752 
753  /* Freestyle line thickness options */
757 
758  /* render engine */
759  char engine[32];
760  char _pad2[2];
761 
762  /* Performance Options */
763  short perf_flag;
764 
765  /* Cycles baking */
766  struct BakeData bake;
767 
768  int _pad8;
770 
771  short _pad4;
772 
773  /* MultiView */
776  short actview;
778 
779  /* Hair Display */
781 
782  /* Motion blur shutter */
785 
787 typedef enum eQualityOption {
790 
792 typedef enum eHairType {
796 
797 /* *************************************************************** */
798 /* Render Conversion/Simplification Settings */
799 
801 typedef struct RenderProfile {
803  char name[32];
804 
806  short subsurf_max;
808  char _pad1[2];
809 
810  float ao_error;
811  char _pad2[4];
812 
814 
815 /* UV Paint */
817 #define UV_SCULPT_LOCK_BORDERS 1
818 #define UV_SCULPT_ALL_ISLANDS 2
819 
821 #define UV_SCULPT_TOOL_RELAX_LAPLACIAN 1
822 #define UV_SCULPT_TOOL_RELAX_HC 2
823 
824 /* Stereo Flags */
825 #define STEREO_RIGHT_NAME "right"
826 #define STEREO_LEFT_NAME "left"
827 #define STEREO_RIGHT_SUFFIX "_R"
828 #define STEREO_LEFT_SUFFIX "_L"
829 
831 typedef enum eStereoViews {
837 
838 /* *************************************************************** */
839 /* Markers */
840 
841 typedef struct TimeMarker {
842  struct TimeMarker *next, *prev;
843  int frame;
844  char name[64];
845  unsigned int flag;
846  struct Object *camera;
847  struct IDProperty *prop;
849 
850 /* *************************************************************** */
851 /* Paint Mode/Tool Data */
852 
853 #define PAINT_MAX_INPUT_SAMPLES 64
854 
855 typedef struct Paint_Runtime {
856  /* Avoid having to compare with scene pointer everywhere. */
857  unsigned int tool_offset;
858  unsigned short ob_mode;
859  char _pad[2];
861 
863 typedef struct PaintToolSlot {
864  struct Brush *brush;
866 
868 typedef struct Paint {
869  struct Brush *brush;
870 
871  /* Each tool has its own active brush,
872  * The currently active tool is defined by the current 'brush'. */
875  char _pad1[4];
876 
877  struct Palette *palette;
880 
881  /* WM Paint cursor */
883  unsigned char paint_cursor_col[4];
884 
885  /* enum ePaintFlags */
886  int flags;
887 
888  /* Paint stroke can use up to PAINT_MAX_INPUT_SAMPLES inputs to
889  * smooth the stroke */
891 
892  /* flags used for symmetry */
894 
895  float tile_offset[3];
896  char _pad2[4];
897 
898  struct Paint_Runtime runtime;
900 
901 /* ------------------------------------------- */
902 /* Image Paint */
903 
905 typedef struct ImagePaintSettings {
907 
909 
910  /* for projection painting only */
914 
916  int mode;
917 
919  struct Image *stencil;
921  struct Image *clone;
923  struct Image *canvas;
924  float stencil_col[3];
926  float dither;
928  int interp;
929  char _pad[4];
931 
932 /* ------------------------------------------- */
933 /* Paint mode settings */
934 
935 typedef struct PaintModeSettings {
938  char _pad[7];
939 
943 
945 
946 /* ------------------------------------------- */
947 /* Particle Edit */
948 
950 typedef struct ParticleBrushData {
952  short size;
954  short step, invert, count;
955  int flag;
956  float strength;
958 
960 typedef struct ParticleEditSettings {
961  short flag;
962  short totrekey;
963  short totaddkey;
964  short brushtype;
965 
968  void *paintcursor;
969 
970  float emitterdist;
971  char _pad0[4];
972 
974  int edittype;
975 
977 
978  struct Scene *scene;
979  struct Object *object;
982 
983 /* ------------------------------------------- */
984 /* Sculpt */
985 
987 typedef struct Sculpt {
989 
990  /* For rotating around a pivot point */
991  // float pivot[3]; XXX not used?
992  int flags;
993 
994  /* Transform tool. */
996 
998 
999  /* Control tablet input */
1000  // char tablet_size, tablet_strength; XXX not used?
1001  int radial_symm[3];
1002 
1003  /* Maximum edge length for dynamic topology sculpting (in pixels) */
1005 
1006  /* Direction used for SCULPT_OT_symmetrize operator */
1008 
1009  /* gravity factor for sculpting */
1011 
1012  /* scale for constant detail size */
1016 
1017  char _pad[4];
1018 
1021 
1022 typedef struct CurvesSculpt {
1025 
1026 typedef struct UvSculpt {
1029 
1031 typedef struct GpPaint {
1033  int flag;
1034  /* Mode of paint (Materials or Vertex Color). */
1035  int mode;
1037 
1039 enum {
1042 };
1043 
1045 typedef struct GpVertexPaint {
1047  int flag;
1048  char _pad[4];
1050 
1052 typedef struct GpSculptPaint {
1054  int flag;
1055  char _pad[4];
1057 
1059 typedef struct GpWeightPaint {
1061  int flag;
1062  char _pad[4];
1064 
1065 /* ------------------------------------------- */
1066 /* Vertex Paint */
1067 
1069 typedef struct VPaint {
1071  char flag;
1072  char _pad[3];
1074  int radial_symm[3];
1076 
1078 enum {
1079  /* weight paint only */
1081 };
1082 
1083 /* ------------------------------------------- */
1084 /* GPencil Stroke Sculpting */
1085 
1087 typedef enum eGP_Lockaxis_Types {
1094 
1096 typedef struct GP_Sculpt_Guide {
1100  char type;
1101  char _pad2[4];
1102  float angle;
1103  float angle_snap;
1104  float spacing;
1105  float location[3];
1108 
1110 typedef struct GP_Sculpt_Settings {
1114  int flag;
1119  char _pad[4];
1125  struct GP_Sculpt_Guide guide;
1127 
1137 
1147 
1157 
1159 typedef struct GP_Interpolate_Settings {
1163 
1166  /* apply interpolation to all layers */
1168  /* apply interpolation to only selected */
1171 
1173 typedef enum eGP_Interpolate_Type {
1174  /* Traditional Linear Interpolation */
1176 
1177  /* CurveMap Defined Interpolation */
1179 
1180  /* Easing Equations */
1192 
1193 /* *************************************************************** */
1194 /* Unified Paint Settings
1195  */
1196 
1197 /* These settings can override the equivalent fields in the active
1198  * Brush for any paint mode; the flag field controls whether these
1199  * values are used */
1200 typedef struct UnifiedPaintSettings {
1201  /* unified radius of brush in pixels */
1202  int size;
1203 
1204  /* unified radius of brush in Blender units */
1206 
1207  /* unified strength of brush */
1208  float alpha;
1209 
1210  /* unified brush weight, [0, 1] */
1211  float weight;
1212 
1213  /* unified brush color */
1214  float rgb[3];
1215  /* unified brush secondary color */
1216  float secondary_rgb[3];
1217 
1218  /* user preferences for sculpt and paint */
1219  int flag;
1220 
1221  /* rake rotation */
1222 
1223  /* record movement of mouse so that rake can start at an intuitive angle */
1224  float last_rake[2];
1226 
1230 
1233 
1234  /*******************************************************************************
1235  * all data below are used to communicate with cursor drawing and tex sampling *
1236  *******************************************************************************/
1238 
1246  /* check is there an ongoing stroke right now */
1248 
1251 
1252  /* store last location of stroke or whether the mesh was hit.
1253  * Valid only while stroke is active */
1254  float last_location[3];
1256 
1258 
1259  /* radius of brush, premultiplied with pressure.
1260  * In case of anchored brushes contains the anchored radius */
1264 
1265  /* drawing pressure */
1267 
1268  /* position of mouse, used to sample the texture */
1269  float tex_mouse[2];
1270 
1271  /* position of mouse, used to sample the mask texture */
1272  float mask_tex_mouse[2];
1273 
1274  /* ColorSpace cache to avoid locking up during sampling */
1277 
1279 typedef enum {
1284 
1285  /* only used if unified size is enabled, mirrors the brush flag BRUSH_LOCK_SIZE */
1288 
1291 
1292 typedef struct CurvePaintSettings {
1294  char flag;
1298  char _pad;
1305 
1307 enum {
1312 };
1313 
1315 enum {
1318 };
1319 
1321 enum {
1324 };
1325 
1327 enum {
1331 };
1332 
1333 /* *************************************************************** */
1334 /* Stats */
1335 
1337 typedef struct MeshStatVis {
1338  char type;
1339  char _pad1[2];
1340 
1341  /* overhang */
1344 
1345  /* thickness */
1348  char _pad2[3];
1349 
1350  /* distort */
1352 
1353  /* sharp */
1356 
1357 typedef struct SequencerToolSettings {
1358  /* eSeqImageFitMethod */
1360  short snap_mode;
1361  short snap_flag;
1362  /* eSeqOverlapMode */
1371 
1372 typedef enum eSeqOverlapMode {
1377 
1378 typedef enum eSeqImageFitMethod {
1384 
1385 /* *************************************************************** */
1386 /* Tool Settings */
1387 
1389 enum {
1390  AUTO_MERGE = 1 << 0,
1392 };
1393 
1394 typedef struct ToolSettings {
1412 
1413  /* Vertex group weight - used only for editmode, not weight
1414  * paint */
1416 
1418  float doublimit;
1421 
1422  /* Selection Mode for Mesh */
1424 
1425  /* UV Calculation */
1428  char uv_flag;
1431 
1433 
1434  /* Auto-IK */
1437 
1438  /* Grease Pencil */
1441 
1446  char _pad0[2];
1447 
1448  /* Annotations */
1451 
1458 
1459  /* Grease Pencil Sculpt */
1461 
1462  /* Grease Pencil Interpolation Tool(s) */
1464 
1465  /* Image Paint (8 bytes aligned please!) */
1467 
1470 
1471  /* Particle Editing */
1473 
1474  /* Transform Proportional Area of Effect */
1476 
1477  /* Select Group Threshold */
1479 
1480  /* Auto-Keying Mode */
1486 
1487  /* Multires */
1489 
1490  /* Edge tagging, store operator settings (no UI access). */
1492 
1494 
1495  /* Transform */
1499  char _pad1[1];
1500  short snap_mode;
1504  short snap_flag;
1509  /* TODO(@gfxcoder): Rename `snap_target` to `snap_source` to avoid previous ambiguity of
1510  * "target" (now, "source" is geometry to be moved and "target" is geometry to which moved
1511  * geometry is snapped). */
1517 
1529 
1540 
1543 
1544  /* UV painting */
1547 
1549 
1550  /* XXX: these sculpt_paint_* fields are deprecated, use the
1551  * unified_paint_settings field instead! */
1552  short sculpt_paint_settings DNA_DEPRECATED;
1553  int sculpt_paint_unified_size DNA_DEPRECATED;
1554  float sculpt_paint_unified_unprojected_radius DNA_DEPRECATED;
1555  float sculpt_paint_unified_alpha DNA_DEPRECATED;
1556 
1557  /* Unified Paint Settings */
1559 
1561 
1562  struct MeshStatVis statvis;
1563 
1564  /* Normal Editing */
1565  float normal_vector[3];
1566  char _pad6[4];
1567 
1568  /* Custom Curve Profile for bevel tool:
1569  * Temporary until there is a proper preset system that stores the profiles or maybe stores
1570  * entire bevel configurations. */
1572 
1574 
1576 
1577 /* *************************************************************** */
1578 /* Assorted Scene Data */
1579 
1580 /* ------------------------------------------- */
1581 /* Unit Settings */
1582 
1583 typedef struct UnitSettings {
1584  /* Display/Editing unit options for each scene */
1588  char system;
1591  short flag;
1592 
1597 
1598  char _pad[4];
1600 
1601 /* ------------------------------------------- */
1602 /* Global/Common Physics Settings */
1603 
1604 typedef struct PhysicsSettings {
1605  float gravity[3];
1607  char _pad0[4];
1609 
1613 typedef struct DisplaySafeAreas {
1614  /* each value represents the (x,y) margins as a multiplier.
1615  * 'center' in this context is just the name for a different kind of safe-area */
1616 
1618  float title[2];
1620  float action[2];
1621 
1622  /* use for alternate aspect ratio */
1623  float title_center[2];
1624  float action_center[2];
1626 
1630 typedef struct SceneDisplay {
1634 
1639 
1643  char _pad[6];
1644 
1648 
1649 typedef struct SceneEEVEE {
1650  int flag;
1657 
1660 
1665 
1671 
1679 
1683 
1689 
1690  float bloom_color[3];
1692  float bloom_knee;
1696 
1697  int motion_blur_samples DNA_DEPRECATED;
1703 
1704  int shadow_method DNA_DEPRECATED;
1707 
1708  struct LightCache *light_cache DNA_DEPRECATED;
1711 
1712  float overscan;
1715 
1716 typedef struct SceneGpencil {
1718  char _pad[4];
1720 
1721 /* *************************************************************** */
1722 /* Scene ID-Block */
1723 
1725  int type;
1727  char flag;
1728  char _pad0[7];
1730 
1732 enum {
1737 };
1738 
1739 typedef struct Scene {
1742  struct AnimData *adt;
1743 
1744  struct Object *camera;
1745  struct World *world;
1746 
1747  struct Scene *set;
1748 
1751  struct Base *basact DNA_DEPRECATED;
1752  void *_pad1;
1753 
1756 
1758  unsigned int lay DNA_DEPRECATED;
1760  int layact DNA_DEPRECATED;
1761  char _pad2[4];
1762 
1764  short flag;
1765 
1767  char _pad3[1];
1768 
1770 
1772  struct Editing *ed;
1773 
1776  void *_pad4;
1778 
1779  /* migrate or replace? depends on some internal things... */
1780  /* no, is on the right place (ton) */
1781  struct RenderData r;
1782  struct AudioData audio;
1783 
1786 
1789 
1794 
1796  void *fps_info;
1797 
1798  /* None of the dependency graph vars is mean to be saved. */
1800  char _pad7[4];
1801 
1802  /* User-Defined KeyingSets */
1810 
1811  /* Units */
1812  struct UnitSettings unit;
1813 
1815  struct bGPdata *gpd;
1816 
1817  /* Movie Tracking */
1819  struct MovieClip *clip;
1820 
1821  /* Physics simulation settings */
1823 
1824  void *_pad8;
1825  /* XXX. runtime flag for drawing, actually belongs in the window,
1826  * only used by BKE_object_handle_update() */
1828  /* XXX. same as above but for temp operator use (gl renders) */
1830 
1831  /* Color Management */
1835 
1836  /* RigidBody simulation world+settings */
1838 
1840 
1842  /* Not an actual datablock, but memory owned by scene. */
1844  struct SceneCollection *collection DNA_DEPRECATED;
1845 
1848  void *_pad9;
1849 
1850  struct SceneDisplay display;
1851  struct SceneEEVEE eevee;
1853 } Scene;
1854 
1855 /* **************** RENDERDATA ********************* */
1856 
1858 /* use preview range */
1859 #define SCER_PRV_RANGE (1 << 0)
1860 #define SCER_LOCK_FRAME_SELECTION (1 << 1)
1861 /* show/use subframes (for checking motion blur) */
1862 #define SCER_SHOW_SUBFRAME (1 << 3)
1863 
1865 #define R_MODE_UNUSED_0 (1 << 0) /* dirty */
1866 #define R_MODE_UNUSED_1 (1 << 1) /* cleared */
1867 #define R_MODE_UNUSED_2 (1 << 2) /* cleared */
1868 #define R_MODE_UNUSED_3 (1 << 3) /* cleared */
1869 #define R_MODE_UNUSED_4 (1 << 4) /* cleared */
1870 #define R_MODE_UNUSED_5 (1 << 5) /* cleared */
1871 #define R_MODE_UNUSED_6 (1 << 6) /* cleared */
1872 #define R_MODE_UNUSED_7 (1 << 7) /* cleared */
1873 #define R_MODE_UNUSED_8 (1 << 8) /* cleared */
1874 #define R_BORDER (1 << 9)
1875 #define R_MODE_UNUSED_10 (1 << 10) /* cleared */
1876 #define R_CROP (1 << 11)
1877 /* Disable camera switching: runtime (DURIAN_CAMERA_SWITCH) */
1878 #define R_NO_CAMERA_SWITCH (1 << 12)
1879 #define R_MODE_UNUSED_13 (1 << 13) /* cleared */
1880 #define R_MBLUR (1 << 14)
1881 /* unified was here */
1882 #define R_MODE_UNUSED_16 (1 << 16) /* cleared */
1883 #define R_MODE_UNUSED_17 (1 << 17) /* cleared */
1884 #define R_MODE_UNUSED_18 (1 << 18) /* cleared */
1885 #define R_MODE_UNUSED_19 (1 << 19) /* cleared */
1886 #define R_FIXED_THREADS (1 << 19)
1887 
1888 #define R_MODE_UNUSED_20 (1 << 20) /* cleared */
1889 #define R_MODE_UNUSED_21 (1 << 21) /* cleared */
1890 #define R_NO_OVERWRITE (1 << 22) /* skip existing files */
1891 #define R_TOUCH (1 << 23) /* touch files before rendering */
1892 #define R_SIMPLIFY (1 << 24)
1893 #define R_EDGE_FRS (1 << 25) /* R_EDGE reserved for Freestyle */
1894 #define R_PERSISTENT_DATA (1 << 26) /* keep data around for re-render */
1895 #define R_MODE_UNUSED_27 (1 << 27) /* cleared */
1896 
1898 enum {
1899  R_SEQ_UNUSED_0 = (1 << 0), /* cleared */
1900  R_SEQ_UNUSED_1 = (1 << 1), /* cleared */
1901  R_SEQ_UNUSED_2 = (1 << 2), /* cleared */
1902  R_SEQ_UNUSED_3 = (1 << 3), /* cleared */
1903  R_SEQ_UNUSED_4 = (1 << 4), /* cleared */
1905 };
1906 
1908 #define R_FILTER_BOX 0
1909 #define R_FILTER_TENT 1
1910 #define R_FILTER_QUAD 2
1911 #define R_FILTER_CUBIC 3
1912 #define R_FILTER_CATROM 4
1913 #define R_FILTER_GAUSS 5
1914 #define R_FILTER_MITCH 6
1915 #define R_FILTER_FAST_GAUSS 7
1916 
1918 #define R_DOSEQ (1 << 0)
1919 #define R_BG_RENDER (1 << 1)
1920 /* passepartout is camera option now, keep this for backward compatibility */
1921 #define R_PASSEPARTOUT (1 << 2)
1922 #define R_BUTS_PREVIEW (1 << 3)
1923 #define R_EXTENSION (1 << 4)
1924 #define R_MATNODE_PREVIEW (1 << 5)
1925 #define R_DOCOMP (1 << 6)
1926 #define R_COMP_CROP (1 << 7)
1927 #define R_SCEMODE_UNUSED_8 (1 << 8) /* cleared */
1928 #define R_SINGLE_LAYER (1 << 9)
1929 #define R_SCEMODE_UNUSED_10 (1 << 10) /* cleared */
1930 #define R_SCEMODE_UNUSED_11 (1 << 11) /* cleared */
1931 #define R_NO_IMAGE_LOAD (1 << 12)
1932 #define R_SCEMODE_UNUSED_13 (1 << 13) /* cleared */
1933 #define R_NO_FRAME_UPDATE (1 << 14)
1934 #define R_SCEMODE_UNUSED_15 (1 << 15) /* cleared */
1935 #define R_SCEMODE_UNUSED_16 (1 << 16) /* cleared */
1936 #define R_SCEMODE_UNUSED_17 (1 << 17) /* cleared */
1937 #define R_TEXNODE_PREVIEW (1 << 18)
1938 #define R_SCEMODE_UNUSED_19 (1 << 19) /* cleared */
1939 #define R_EXR_CACHE_FILE (1 << 20)
1940 #define R_MULTIVIEW (1 << 21)
1941 
1943 #define R_STAMP_TIME (1 << 0)
1944 #define R_STAMP_FRAME (1 << 1)
1945 #define R_STAMP_DATE (1 << 2)
1946 #define R_STAMP_CAMERA (1 << 3)
1947 #define R_STAMP_SCENE (1 << 4)
1948 #define R_STAMP_NOTE (1 << 5)
1949 #define R_STAMP_DRAW (1 << 6) /* draw in the image */
1950 #define R_STAMP_MARKER (1 << 7)
1951 #define R_STAMP_FILENAME (1 << 8)
1952 #define R_STAMP_SEQSTRIP (1 << 9)
1953 #define R_STAMP_RENDERTIME (1 << 10)
1954 #define R_STAMP_CAMERALENS (1 << 11)
1955 #define R_STAMP_STRIPMETA (1 << 12)
1956 #define R_STAMP_MEMORY (1 << 13)
1957 #define R_STAMP_HIDE_LABELS (1 << 14)
1958 #define R_STAMP_FRAME_RANGE (1 << 15)
1959 #define R_STAMP_HOSTNAME (1 << 16)
1960 #define R_STAMP_ALL \
1961  (R_STAMP_TIME | R_STAMP_FRAME | R_STAMP_DATE | R_STAMP_CAMERA | R_STAMP_SCENE | R_STAMP_NOTE | \
1962  R_STAMP_MARKER | R_STAMP_FILENAME | R_STAMP_SEQSTRIP | R_STAMP_RENDERTIME | \
1963  R_STAMP_CAMERALENS | R_STAMP_MEMORY | R_STAMP_HIDE_LABELS | R_STAMP_FRAME_RANGE | \
1964  R_STAMP_HOSTNAME)
1965 
1967 enum {
1970 };
1971 
1973 enum {
1977 };
1978 
1979 /* bake_mode: same as RE_BAKE_xxx defines */
1981 #define R_BAKE_CLEAR (1 << 0)
1982 /* #define R_BAKE_OSA (1 << 1) */ /* deprecated */
1983 #define R_BAKE_TO_ACTIVE (1 << 2)
1984 /* #define R_BAKE_NORMALIZE (1 << 3) */ /* deprecated */
1985 #define R_BAKE_MULTIRES (1 << 4)
1986 #define R_BAKE_LORES_MESH (1 << 5)
1987 /* #define R_BAKE_VCOL (1 << 6) */ /* deprecated */
1988 #define R_BAKE_USERSCALE (1 << 7)
1989 #define R_BAKE_CAGE (1 << 8)
1990 #define R_BAKE_SPLIT_MAT (1 << 9)
1991 #define R_BAKE_AUTO_NAME (1 << 10)
1992 
1994 #define R_BAKE_SPACE_CAMERA 0
1995 #define R_BAKE_SPACE_WORLD 1
1996 #define R_BAKE_SPACE_OBJECT 2
1997 #define R_BAKE_SPACE_TANGENT 3
1998 
2000 #define R_LINE_THICKNESS_ABSOLUTE 1
2001 #define R_LINE_THICKNESS_RELATIVE 2
2002 
2003 /* sequencer seq_prev_type seq_rend_type */
2004 
2006 extern const char *RE_engine_id_BLENDER_EEVEE;
2007 extern const char *RE_engine_id_BLENDER_WORKBENCH;
2008 extern const char *RE_engine_id_CYCLES;
2009 
2010 /* **************** SCENE ********************* */
2011 
2012 /* note that much higher maxframes give imprecise sub-frames, see: T46859 */
2013 /* Current precision is 16 for the sub-frames closer to MAXFRAME. */
2014 
2015 /* for general use */
2016 #define MAXFRAME 1048574
2017 #define MAXFRAMEF 1048574.0f
2018 
2019 #define MINFRAME 0
2020 #define MINFRAMEF 0.0f
2021 
2022 /* (minimum frame number for current-frame) */
2023 #define MINAFRAME -1048574
2024 #define MINAFRAMEF -1048574.0f
2025 
2026 #define BASE_VISIBLE(v3d, base) BKE_base_is_visible(v3d, base)
2027 #define BASE_SELECTABLE(v3d, base) \
2028  (BASE_VISIBLE(v3d, base) && \
2029  ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_select) == 0)) && \
2030  (((base)->flag & BASE_SELECTABLE) != 0))
2031 #define BASE_SELECTED(v3d, base) (BASE_VISIBLE(v3d, base) && (((base)->flag & BASE_SELECTED) != 0))
2032 #define BASE_EDITABLE(v3d, base) \
2033  (BASE_VISIBLE(v3d, base) && !ID_IS_LINKED((base)->object) && \
2034  (!ID_IS_OVERRIDE_LIBRARY_REAL((base)->object) || \
2035  ((base)->object->id.override_library->flag & IDOVERRIDE_LIBRARY_FLAG_SYSTEM_DEFINED) == 0))
2036 #define BASE_SELECTED_EDITABLE(v3d, base) \
2037  (BASE_EDITABLE(v3d, base) && (((base)->flag & BASE_SELECTED) != 0))
2038 
2039 /* deprecate this! */
2040 #define FIRSTBASE(_view_layer) ((_view_layer)->object_bases.first)
2041 #define LASTBASE(_view_layer) ((_view_layer)->object_bases.last)
2042 #define BASACT(_view_layer) ((_view_layer)->basact)
2043 #define OBACT(_view_layer) (BASACT(_view_layer) ? BASACT(_view_layer)->object : NULL)
2044 
2045 #define OBEDIT_FROM_WORKSPACE(workspace, _view_layer) \
2046  (((workspace)->object_mode & OD_MODE_EDIT) ? OBACT(_view_layer) : NULL)
2047 #define OBEDIT_FROM_OBACT(ob) ((ob) ? (((ob)->mode & OB_MODE_EDIT) ? ob : NULL) : NULL)
2048 #define OBPOSE_FROM_OBACT(ob) ((ob) ? (((ob)->mode & OB_MODE_POSE) ? ob : NULL) : NULL)
2049 #define OBWEIGHTPAINT_FROM_OBACT(ob) \
2050  ((ob) ? (((ob)->mode & OB_MODE_WEIGHT_PAINT) ? ob : NULL) : NULL)
2051 #define OBEDIT_FROM_VIEW_LAYER(view_layer) OBEDIT_FROM_OBACT(OBACT(view_layer))
2052 
2053 #define V3D_CAMERA_LOCAL(v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : NULL)
2054 #define V3D_CAMERA_SCENE(scene, v3d) \
2055  ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : (scene)->camera)
2056 
2057 #define PRVRANGEON (scene->r.flag & SCER_PRV_RANGE)
2058 #define PSFRA ((PRVRANGEON) ? (scene->r.psfra) : (scene->r.sfra))
2059 #define PEFRA ((PRVRANGEON) ? (scene->r.pefra) : (scene->r.efra))
2060 #define FRA2TIME(a) ((((double)scene->r.frs_sec_base) * (double)(a)) / (double)scene->r.frs_sec)
2061 #define TIME2FRA(a) ((((double)scene->r.frs_sec) * (double)(a)) / (double)scene->r.frs_sec_base)
2062 #define FPS (((double)scene->r.frs_sec) / (double)scene->r.frs_sec_base)
2063 
2064 /* Base.flag is in DNA_object_types.h */
2065 
2067 enum {
2071 };
2072 
2074 enum {
2076 };
2077 
2079 enum {
2082 };
2083 
2085 typedef enum eSnapFlag {
2086  SCE_SNAP = (1 << 0),
2087  SCE_SNAP_ROTATE = (1 << 1),
2089  SCE_SNAP_PROJECT = (1 << 3), /* Project individual elements instead of whole object. */
2090  SCE_SNAP_NOT_TO_ACTIVE = (1 << 4), /* Was `SCE_SNAP_NO_SELF`, but self should be active. */
2091  SCE_SNAP_ABS_GRID = (1 << 5),
2094  /* see #eSnapTargetSelect */
2099 /* Due to dependency conflicts with Cycles, header cannot directly include `BLI_utildefines.h`. */
2100 /* TODO: move this macro to a more general place. */
2101 #ifdef ENUM_OPERATORS
2103 #endif
2104 
2106 typedef enum eSnapSourceSelect {
2112 
2115 typedef enum eSnapTargetSelect {
2123 
2125 typedef enum eSnapMode {
2134 
2138 
2142 
2147 /* Due to dependency conflicts with Cycles, header cannot directly include `BLI_utildefines.h`. */
2148 /* TODO: move this macro to a more general place. */
2149 #ifdef ENUM_OPERATORS
2151 #endif
2152 
2154 #define SEQ_SNAP_TO_STRIPS (1 << 0)
2155 #define SEQ_SNAP_TO_CURRENT_FRAME (1 << 1)
2156 #define SEQ_SNAP_TO_STRIP_HOLD (1 << 2)
2157 
2159 #define SEQ_SNAP_IGNORE_MUTED (1 << 0)
2160 #define SEQ_SNAP_IGNORE_SOUND (1 << 1)
2161 #define SEQ_SNAP_CURRENT_FRAME_TO_STRIPS (1 << 2)
2162 
2164 typedef enum eSnapTransformMode {
2169 
2171 #define SCE_SELECT_VERTEX (1 << 0) /* for mesh */
2172 #define SCE_SELECT_EDGE (1 << 1)
2173 #define SCE_SELECT_FACE (1 << 2)
2174 
2176 #define SCE_STATVIS_OVERHANG 0
2177 #define SCE_STATVIS_THICKNESS 1
2178 #define SCE_STATVIS_INTERSECT 2
2179 #define SCE_STATVIS_DISTORT 3
2180 #define SCE_STATVIS_SHARP 4
2181 
2183 #define SCE_SELECT_PATH (1 << 0)
2184 #define SCE_SELECT_POINT (1 << 1)
2185 #define SCE_SELECT_END (1 << 2)
2186 
2188 #define PROP_SMOOTH 0
2189 #define PROP_SPHERE 1
2190 #define PROP_ROOT 2
2191 #define PROP_SHARP 3
2192 #define PROP_LIN 4
2193 #define PROP_CONST 5
2194 #define PROP_RANDOM 6
2195 #define PROP_INVSQUARE 7
2196 #define PROP_MODE_MAX 8
2197 
2199 enum {
2200  PROP_EDIT_USE = (1 << 0),
2203 };
2204 
2206 enum {
2210 };
2211 
2212 /* object_vgroup.c */
2213 
2215 typedef enum eVGroupSelect {
2222 
2223 #define WT_VGROUP_MASK_ALL \
2224  ((1 << WT_VGROUP_ACTIVE) | (1 << WT_VGROUP_BONE_SELECT) | (1 << WT_VGROUP_BONE_DEFORM) | \
2225  (1 << WT_VGROUP_BONE_DEFORM_OFF) | (1 << WT_VGROUP_ALL))
2226 
2228 #define SCE_DS_SELECTED (1 << 0)
2229 #define SCE_DS_COLLAPSED (1 << 1)
2230 #define SCE_NLA_EDIT_ON (1 << 2)
2231 #define SCE_FRAME_DROP (1 << 3)
2232 #define SCE_KEYS_NO_SELONLY (1 << 4)
2233 #define SCE_READFILE_LIBLINK_NEED_SETSCENE_CHECK (1 << 5)
2234 
2235 /* return flag BKE_scene_base_iter_next functions */
2236 /* #define F_ERROR -1 */ /* UNUSED */
2237 #define F_START 0
2238 #define F_SCENE 1
2239 #define F_DUPLI 3
2240 
2242 #define AUDIO_MUTE (1 << 0)
2243 #define AUDIO_SYNC (1 << 1)
2244 #define AUDIO_SCRUB (1 << 2)
2245 #define AUDIO_VOLUME_ANIMATED (1 << 3)
2246 
2248 enum {
2249 #ifdef DNA_DEPRECATED_ALLOW
2250  FFMPEG_MULTIPLEX_AUDIO = (1 << 0), /* deprecated, you can choose none as audiocodec now */
2251 #endif
2255 };
2256 
2258 typedef enum ePaintFlags {
2259  PAINT_SHOW_BRUSH = (1 << 0),
2265 
2270 typedef enum ePaintSymmetryFlags {
2271  PAINT_SYMM_X = (1 << 0),
2272  PAINT_SYMM_Y = (1 << 1),
2273  PAINT_SYMM_Z = (1 << 2),
2275  PAINT_TILE_X = (1 << 4),
2276  PAINT_TILE_Y = (1 << 5),
2277  PAINT_TILE_Z = (1 << 6),
2279 
2280 #define PAINT_SYMM_AXIS_ALL (PAINT_SYMM_X | PAINT_SYMM_Y | PAINT_SYMM_Z)
2281 
2286 typedef enum eSculptFlags {
2287  SCULPT_FLAG_UNUSED_0 = (1 << 0), /* cleared */
2288  SCULPT_FLAG_UNUSED_1 = (1 << 1), /* cleared */
2289  SCULPT_FLAG_UNUSED_2 = (1 << 2), /* cleared */
2290 
2291  SCULPT_LOCK_X = (1 << 3),
2292  SCULPT_LOCK_Y = (1 << 4),
2293  SCULPT_LOCK_Z = (1 << 5),
2294 
2295  SCULPT_FLAG_UNUSED_6 = (1 << 6), /* cleared */
2296 
2297  SCULPT_FLAG_UNUSED_7 = (1 << 7), /* cleared */
2299  // SCULPT_SHOW_DIFFUSE = (1 << 9), /* deprecated */
2300 
2301  /* If set, the mesh will be drawn with smooth-shading in
2302  * dynamic-topology mode */
2304 
2305  /* If set, dynamic-topology brushes will subdivide short edges */
2307  /* If set, dynamic-topology brushes will collapse short edges */
2309 
2310  /* If set, dynamic-topology detail size will be constant in object space */
2314 
2315  /* Don't display mask in viewport, but still use it for strokes. */
2316  SCULPT_HIDE_MASK = (1 << 15),
2317 
2318  /* Don't display face sets in viewport. */
2321 
2322 /* Sculpt.transform_mode */
2323 typedef enum eSculptTransformMode {
2327 
2329 typedef enum ePaintCanvasSource {
2337 
2339 /* Defines to let old texture painting use the new enum. */
2340 /* TODO(jbakker): rename usages. */
2341 #define IMAGEPAINT_MODE_MATERIAL PAINT_CANVAS_SOURCE_MATERIAL
2342 #define IMAGEPAINT_MODE_IMAGE PAINT_CANVAS_SOURCE_IMAGE
2343 
2345 enum {
2348 };
2349 
2351 #define IMAGEPAINT_DRAWING (1 << 0)
2352 // #define IMAGEPAINT_DRAW_TOOL (1 << 1) /* deprecated */
2353 // #define IMAGEPAINT_DRAW_TOOL_DRAWING (1 << 2) /* deprecated */
2354 
2355 /* projection painting only */
2357 #define IMAGEPAINT_PROJECT_XRAY (1 << 4)
2358 #define IMAGEPAINT_PROJECT_BACKFACE (1 << 5)
2359 #define IMAGEPAINT_PROJECT_FLAT (1 << 6)
2360 #define IMAGEPAINT_PROJECT_LAYER_CLONE (1 << 7)
2361 #define IMAGEPAINT_PROJECT_LAYER_STENCIL (1 << 8)
2362 #define IMAGEPAINT_PROJECT_LAYER_STENCIL_INV (1 << 9)
2363 
2365 #define IMAGEPAINT_MISSING_UVS (1 << 0)
2366 #define IMAGEPAINT_MISSING_MATERIAL (1 << 1)
2367 #define IMAGEPAINT_MISSING_TEX (1 << 2)
2368 #define IMAGEPAINT_MISSING_STENCIL (1 << 3)
2369 
2371 #define UVCALC_FILLHOLES (1 << 0)
2373 #define UVCALC_NO_ASPECT_CORRECT (1 << 1)
2375 #define UVCALC_TRANSFORM_CORRECT_SLIDE (1 << 2)
2377 #define UVCALC_USESUBSURF (1 << 3)
2379 #define UVCALC_TRANSFORM_CORRECT (1 << 4)
2381 #define UVCALC_TRANSFORM_CORRECT_KEEP_CONNECTED (1 << 5)
2382 
2384 #define UV_SYNC_SELECTION 1
2385 #define UV_SHOW_SAME_IMAGE 2
2386 
2388 #define UV_SELECT_VERTEX 1
2389 #define UV_SELECT_EDGE 2
2390 #define UV_SELECT_FACE 4
2391 #define UV_SELECT_ISLAND 8
2392 
2394 enum {
2398 };
2399 
2401 typedef enum eGPencil_Flags {
2402  /* When creating new frames, the last frame gets used as the basis for the new one */
2404  /* Add the strokes below all strokes in the layer */
2406  /* Show compact list of colors */
2408  /* Generate wheight data for new strokes */
2410  /* Automerge with last stroke */
2413 
2416  /* Simplify */
2418  /* Simplify on play */
2420  /* Simplify fill on viewport */
2422  /* Simplify modifier on viewport */
2424  /* Simplify Shader FX */
2426  /* Simplify layer tint */
2428  /* Simplify Antialiasing */
2431 
2434  /* New strokes are added in viewport/data space (i.e. not screen space) */
2436 
2437  /* Viewport space, but relative to render canvas (Sequencer Preview Only) */
2438  /* GP_PROJECT_CANVAS = (1 << 1), */ /* UNUSED */
2439 
2440  /* Project into the screen's Z values */
2443 
2444  /* "Use Endpoints" */
2446  GP_PROJECT_CURSOR = (1 << 5),
2449 
2456 
2458 typedef enum eGPencil_GuideTypes {
2465 
2472 
2474 #define PE_KEEP_LENGTHS (1 << 0)
2475 #define PE_LOCK_FIRST (1 << 1)
2476 #define PE_DEFLECT_EMITTER (1 << 2)
2477 #define PE_INTERPOLATE_ADDED (1 << 3)
2478 #define PE_DRAW_PART (1 << 4)
2479 #define PE_UNUSED_6 (1 << 6) /* cleared */
2480 #define PE_FADE_TIME (1 << 7)
2481 #define PE_AUTO_VELOCITY (1 << 8)
2482 
2484 #define PE_BRUSH_NONE -1
2485 #define PE_BRUSH_COMB 0
2486 #define PE_BRUSH_CUT 1
2487 #define PE_BRUSH_LENGTH 2
2488 #define PE_BRUSH_PUFF 3
2489 #define PE_BRUSH_ADD 4
2490 #define PE_BRUSH_SMOOTH 5
2491 #define PE_BRUSH_WEIGHT 6
2492 
2494 #define PE_BRUSH_DATA_PUFF_VOLUME 1
2495 
2497 #define PE_TYPE_PARTICLES 0
2498 #define PE_TYPE_SOFTBODY 1
2499 #define PE_TYPE_CLOTH 2
2500 
2502 #define PHYS_GLOBAL_GRAVITY 1
2503 
2504 /* UnitSettings */
2505 
2506 #define USER_UNIT_ADAPTIVE 0xFF
2508 #define USER_UNIT_NONE 0
2509 #define USER_UNIT_METRIC 1
2510 #define USER_UNIT_IMPERIAL 2
2512 #define USER_UNIT_OPT_SPLIT 1
2513 #define USER_UNIT_ROT_RADIANS 2
2514 
2516 enum {
2517  // SCE_EEVEE_VOLUMETRIC_ENABLED = (1 << 0), /* Unused */
2520  // SCE_EEVEE_VOLUMETRIC_COLORED = (1 << 3), /* Unused */
2524  // SCE_EEVEE_DOF_ENABLED = (1 << 7), /* Moved to camera->dof.flag */
2529  // SCE_EEVEE_SSS_ENABLED = (1 << 12), /* Unused */
2530  // SCE_EEVEE_SSS_SEPARATE_ALBEDO = (1 << 13), /* Unused */
2538  SCE_EEVEE_OVERSCAN = (1 << 21),
2541 };
2542 
2544 enum {
2546  /* SHADOW_VSM = 2, */ /* UNUSED */
2547  /* SHADOW_METHOD_MAX = 3, */ /* UNUSED */
2548 };
2549 
2551 enum {
2555 };
2556 
2558 enum {
2566 };
2567 
2568 #ifdef __cplusplus
2569 }
2570 #endif
#define ENUM_OPERATORS(_type, _max)
ID and Library types, which are fundamental for sdna.
These structs are the foundation for all linked lists in the library system.
struct SequencerToolSettings SequencerToolSettings
struct UnitSettings UnitSettings
struct CurvesSculpt CurvesSculpt
struct PaintModeSettings PaintModeSettings
struct ParticleBrushData ParticleBrushData
eGPencil_GuideTypes
@ GP_GUIDE_CIRCULAR
@ GP_GUIDE_ISO
@ GP_GUIDE_PARALLEL
@ GP_GUIDE_RADIAL
@ GP_GUIDE_GRID
@ SCE_XFORM_SKIP_CHILDREN
@ SCE_XFORM_AXIS_ALIGN
@ SCE_XFORM_DATA_ORIGIN
@ IMAGEPAINT_INTERP_LINEAR
@ IMAGEPAINT_INTERP_CLOSEST
@ R_IMF_TIFF_CODEC_PACKBITS
@ R_IMF_TIFF_CODEC_DEFLATE
@ R_IMF_TIFF_CODEC_NONE
@ R_IMF_TIFF_CODEC_LZW
struct SceneEEVEE SceneEEVEE
eGPencil_Guide_Reference
@ GP_GUIDE_REF_OBJECT
@ GP_GUIDE_REF_CUSTOM
@ GP_GUIDE_REF_CURSOR
eSculptFlags
@ SCULPT_FLAG_UNUSED_1
@ SCULPT_FLAG_UNUSED_2
@ SCULPT_HIDE_MASK
@ SCULPT_ONLY_DEFORM
@ SCULPT_DYNTOPO_SUBDIVIDE
@ SCULPT_DYNTOPO_DETAIL_MANUAL
@ SCULPT_FLAG_UNUSED_0
@ SCULPT_LOCK_X
@ SCULPT_FLAG_UNUSED_6
@ SCULPT_LOCK_Z
@ SCULPT_HIDE_FACE_SETS
@ SCULPT_DYNTOPO_DETAIL_CONSTANT
@ SCULPT_DYNTOPO_COLLAPSE
@ SCULPT_FLAG_UNUSED_7
@ SCULPT_DYNTOPO_SMOOTH_SHADING
@ SCULPT_DYNTOPO_DETAIL_BRUSH
@ SCULPT_LOCK_Y
struct PaintToolSlot PaintToolSlot
eSnapTargetSelect
@ SCE_SNAP_TARGET_NOT_ACTIVE
@ SCE_SNAP_TARGET_NOT_NONEDITED
@ SCE_SNAP_TARGET_ONLY_SELECTABLE
@ SCE_SNAP_TARGET_ALL
@ SCE_SNAP_TARGET_NOT_SELECTED
@ SCE_SNAP_TARGET_NOT_EDITED
const char * RE_engine_id_CYCLES
Definition: scene.cc:1697
eGP_Sculpt_SettingsFlag
@ GP_SCULPT_SETT_FLAG_PRIMITIVE_CURVE
@ GP_SCULPT_SETT_FLAG_FRAME_FALLOFF
@ GP_SCULPT_SETT_FLAG_SCALE_THICKNESS
eUnifiedPaintSettingsFlags
@ UNIFIED_PAINT_WEIGHT
@ UNIFIED_PAINT_SIZE
@ UNIFIED_PAINT_FLAG_UNUSED_0
@ UNIFIED_PAINT_BRUSH_LOCK_SIZE
@ UNIFIED_PAINT_ALPHA
@ UNIFIED_PAINT_COLOR
@ UNIFIED_PAINT_FLAG_UNUSED_1
eQualityOption
@ SCE_PERF_HQ_NORMALS
struct SceneDisplay SceneDisplay
struct GpPaint GpPaint
struct RenderData RenderData
struct TransformOrientationSlot TransformOrientationSlot
eGP_Interpolate_Type
@ GP_IPO_BOUNCE
@ GP_IPO_QUINT
@ GP_IPO_QUART
@ GP_IPO_LINEAR
@ GP_IPO_CUBIC
@ GP_IPO_ELASTIC
@ GP_IPO_QUAD
@ GP_IPO_BACK
@ GP_IPO_CURVEMAP
@ GP_IPO_CIRC
@ GP_IPO_SINE
@ GP_IPO_EXPO
eGP_Lockaxis_Types
@ GP_LOCKAXIS_X
@ GP_LOCKAXIS_VIEW
@ GP_LOCKAXIS_Y
@ GP_LOCKAXIS_Z
@ GP_LOCKAXIS_CURSOR
struct Scene Scene
eFFMpegPreset
@ FFM_PRESET_GOOD
@ FFM_PRESET_REALTIME
@ FFM_PRESET_NONE
@ FFM_PRESET_BEST
struct ToolSettings ToolSettings
@ SCE_WORKSPACE_TOOL_DEFAULT
@ SCE_WORKSPACE_TOOL_FALLBACK
eGPencil_Selectmode_types
@ GP_SELECTMODE_POINT
@ GP_SELECTMODE_SEGMENT
@ GP_SELECTMODE_STROKE
@ AUTO_MERGE
@ AUTO_MERGE_AND_SPLIT
eHairType
@ SCE_HAIR_SHAPE_STRAND
@ SCE_HAIR_SHAPE_STRIP
struct GpVertexPaint GpVertexPaint
eBakeTarget
@ R_BAKE_TARGET_VERTEX_COLORS
@ R_BAKE_TARGET_IMAGE_TEXTURES
struct ImageFormatData ImageFormatData
eStereo3dAnaglyphType
@ S3D_ANAGLYPH_REDCYAN
@ S3D_ANAGLYPH_YELLOWBLUE
@ S3D_ANAGLYPH_GREENMAGENTA
eBakeNormalSwizzle
@ R_BAKE_POSY
@ R_BAKE_NEGX
@ R_BAKE_POSZ
@ R_BAKE_NEGY
@ R_BAKE_POSX
@ R_BAKE_NEGZ
struct GP_Sculpt_Settings GP_Sculpt_Settings
struct TimeMarker TimeMarker
@ SCE_OBJECT_MODE_LOCK
@ FFMPEG_LOSSLESS_OUTPUT
@ FFMPEG_AUTOSPLIT_OUTPUT
@ FFMPEG_USE_MAX_B_FRAMES
eBakeMarginType
@ R_BAKE_ADJACENT_FACES
@ R_BAKE_EXTEND
@ CURVE_PAINT_SURFACE_PLANE_NORMAL_SURFACE
@ CURVE_PAINT_SURFACE_PLANE_VIEW
@ CURVE_PAINT_SURFACE_PLANE_NORMAL_VIEW
ePaintFlags
@ PAINT_USE_CAVITY_MASK
@ PAINT_SCULPT_DELAY_UPDATES
@ PAINT_SHOW_BRUSH
@ PAINT_SHOW_BRUSH_ON_SURFACE
@ PAINT_FAST_NAVIGATE
eSeqOverlapMode
@ SEQ_OVERLAP_EXPAND
@ SEQ_OVERLAP_SHUFFLE
@ SEQ_OVERLAP_OVERWRITE
@ R_SEQ_UNUSED_0
@ R_SEQ_UNUSED_2
@ R_SEQ_OVERRIDE_SCENE_SETTINGS
@ R_SEQ_UNUSED_4
@ R_SEQ_UNUSED_1
@ R_SEQ_UNUSED_3
eStereo3dFlag
@ S3D_SQUEEZED_FRAME
@ S3D_INTERLACE_SWAP
@ S3D_SIDEBYSIDE_CROSSEYED
struct BakeData BakeData
@ VP_FLAG_VGROUP_RESTRICT
@ SCE_ORIENT_DEFAULT
@ SCE_ORIENT_ROTATE
@ SCE_ORIENT_TRANSLATE
@ SCE_ORIENT_SCALE
eStereoDisplayMode
@ S3D_DISPLAY_ANAGLYPH
@ S3D_DISPLAY_INTERLACE
@ S3D_DISPLAY_TOPBOTTOM
@ S3D_DISPLAY_SIDEBYSIDE
@ S3D_DISPLAY_PAGEFLIP
eFFMpegCrf
@ FFM_CRF_LOW
@ FFM_CRF_MEDIUM
@ FFM_CRF_VERYLOW
@ FFM_CRF_LOSSLESS
@ FFM_CRF_PERC_LOSSLESS
@ FFM_CRF_NONE
@ FFM_CRF_LOWEST
@ FFM_CRF_HIGH
struct SceneRenderLayer SceneRenderLayer
struct SceneGpencil SceneGpencil
struct SceneRenderView SceneRenderView
eImageFormatDepth
@ R_IMF_CHAN_DEPTH_24
@ R_IMF_CHAN_DEPTH_8
@ R_IMF_CHAN_DEPTH_16
@ R_IMF_CHAN_DEPTH_12
@ R_IMF_CHAN_DEPTH_1
@ R_IMF_CHAN_DEPTH_10
@ R_IMF_CHAN_DEPTH_32
struct GpSculptPaint GpSculptPaint
@ SI_STICKY_VERTEX
@ SI_STICKY_LOC
@ SI_STICKY_DISABLE
@ R_ADDSKY
@ R_ALPHAPREMUL
const char * RE_engine_id_BLENDER_WORKBENCH
Definition: scene.cc:1696
struct GP_Interpolate_Settings GP_Interpolate_Settings
ePaintCanvasSource
@ PAINT_CANVAS_SOURCE_COLOR_ATTRIBUTE
@ PAINT_CANVAS_SOURCE_IMAGE
@ PAINT_CANVAS_SOURCE_MATERIAL
@ CURVE_PAINT_PROJECT_CURSOR
@ CURVE_PAINT_PROJECT_SURFACE
ePaintSymmetryFlags
@ PAINT_TILE_Z
@ PAINT_SYMM_Y
@ PAINT_TILE_Y
@ PAINT_SYMMETRY_FEATHER
@ PAINT_TILE_X
@ PAINT_SYMM_X
@ PAINT_SYMM_Z
struct Stereo3dFormat Stereo3dFormat
struct DisplaySafeAreas DisplaySafeAreas
eGP_Sculpt_SelectMaskFlag
@ GP_SCULPT_MASK_SELECTMODE_POINT
@ GP_SCULPT_MASK_SELECTMODE_STROKE
@ GP_SCULPT_MASK_SELECTMODE_SEGMENT
@ PROP_EDIT_PROJECTED
@ PROP_EDIT_USE
@ PROP_EDIT_CONNECTED
@ SCE_EEVEE_MB_END
@ SCE_EEVEE_MB_START
@ SCE_EEVEE_MB_CENTER
eGP_vertex_SelectMaskFlag
@ GP_VERTEX_MASK_SELECTMODE_SEGMENT
@ GP_VERTEX_MASK_SELECTMODE_STROKE
@ GP_VERTEX_MASK_SELECTMODE_POINT
struct UnifiedPaintSettings UnifiedPaintSettings
eStereo3dInterlaceType
@ S3D_INTERLACE_ROW
@ S3D_INTERLACE_COLUMN
@ S3D_INTERLACE_CHECKERBOARD
@ SCE_EEVEE_SHADOW_HIGH_BITDEPTH
@ SCE_EEVEE_VOLUMETRIC_SHADOWS
@ SCE_EEVEE_DOF_HQ_SLIGHT_FOCUS
@ SCE_EEVEE_SSR_ENABLED
@ SCE_EEVEE_MOTION_BLUR_ENABLED
@ SCE_EEVEE_SHOW_IRRADIANCE
@ SCE_EEVEE_SSR_REFRACTION
@ SCE_EEVEE_BLOOM_ENABLED
@ SCE_EEVEE_GTAO_BOUNCE
@ SCE_EEVEE_SSR_HALF_RESOLUTION
@ SCE_EEVEE_TAA_REPROJECTION
@ SCE_EEVEE_OVERSCAN
@ SCE_EEVEE_SHADOW_SOFT
@ SCE_EEVEE_GTAO_BENT_NORMALS
@ SCE_EEVEE_GTAO_ENABLED
@ SCE_EEVEE_SHOW_CUBEMAPS
@ SCE_EEVEE_DOF_JITTER
@ SCE_EEVEE_VOLUMETRIC_LIGHTS
@ SCE_EEVEE_GI_AUTOBAKE
struct UvSculpt UvSculpt
@ CURVE_PAINT_FLAG_DEPTH_STROKE_ENDPOINTS
@ CURVE_PAINT_FLAG_DEPTH_STROKE_OFFSET_ABS
@ CURVE_PAINT_FLAG_CORNERS_DETECT
@ CURVE_PAINT_FLAG_PRESSURE_RADIUS
eGPencil_Placement_Flags
@ GP_PROJECT_VIEWSPACE
@ GP_PROJECT_DEPTH_VIEW
@ GP_PROJECT_CURSOR
@ GP_PROJECT_DEPTH_STROKE_ENDPOINTS
@ GP_PROJECT_DEPTH_STROKE
@ GP_PROJECT_DEPTH_STROKE_FIRST
struct Paint_Runtime Paint_Runtime
eSnapFlag
@ SCE_SNAP_PEEL_OBJECT
@ SCE_SNAP_TO_INCLUDE_EDITED
@ SCE_SNAP_NOT_TO_ACTIVE
@ SCE_SNAP
@ SCE_SNAP_TO_INCLUDE_NONEDITED
@ SCE_SNAP_PROJECT
@ SCE_SNAP_ROTATE
@ SCE_SNAP_ABS_GRID
@ SCE_SNAP_BACKFACE_CULLING
@ SCE_SNAP_KEEP_ON_SAME_OBJECT
@ SCE_SNAP_TO_ONLY_SELECTABLE
@ SHADOW_ESM
struct ImagePaintSettings ImagePaintSettings
eGPencil_SimplifyFlags
@ SIMPLIFY_GPENCIL_FILL
@ SIMPLIFY_GPENCIL_ON_PLAY
@ SIMPLIFY_GPENCIL_AA
@ SIMPLIFY_GPENCIL_MODIFIER
@ SIMPLIFY_GPENCIL_TINT
@ SIMPLIFY_GPENCIL_ENABLE
@ SIMPLIFY_GPENCIL_FX
struct AviCodecData AviCodecData
@ SCE_DISPLAY_AA_OFF
@ SCE_DISPLAY_AA_SAMPLES_32
@ SCE_DISPLAY_AA_SAMPLES_8
@ SCE_DISPLAY_AA_SAMPLES_11
@ SCE_DISPLAY_AA_SAMPLES_5
@ SCE_DISPLAY_AA_SAMPLES_16
@ SCE_DISPLAY_AA_FXAA
eSnapSourceSelect
@ SCE_SNAP_SOURCE_MEDIAN
@ SCE_SNAP_SOURCE_CLOSEST
@ SCE_SNAP_SOURCE_ACTIVE
@ SCE_SNAP_SOURCE_CENTER
@ OB_DRAW_GROUPUSER_ACTIVE
@ OB_DRAW_GROUPUSER_NONE
@ OB_DRAW_GROUPUSER_ALL
struct MeshStatVis MeshStatVis
eGP_Interpolate_SettingsFlag
@ GP_TOOLFLAG_INTERPOLATE_ONLY_SELECTED
@ GP_TOOLFLAG_INTERPOLATE_ALL_LAYERS
const char * RE_engine_id_BLENDER_EEVEE
Definition: scene.cc:1695
struct PhysicsSettings PhysicsSettings
struct VPaint VPaint
enum eGP_vertex_SelectMaskFlag eGP_Vertex_SelectMaskFlag
struct GP_Sculpt_Guide GP_Sculpt_Guide
eGPencil_Flags
@ GP_TOOL_FLAG_RETAIN_LAST
@ GP_TOOL_FLAG_THUMBNAIL_LIST
@ GP_TOOL_FLAG_PAINT_ONBACK
@ GP_TOOL_FLAG_AUTOMERGE_STROKE
@ GP_TOOL_FLAG_CREATE_WEIGHTS
eSnapTransformMode
@ SCE_SNAP_TRANSFORM_MODE_SCALE
@ SCE_SNAP_TRANSFORM_MODE_ROTATE
@ SCE_SNAP_TRANSFORM_MODE_TRANSLATE
struct CurvePaintSettings CurvePaintSettings
eFFMpegAudioChannels
@ FFM_CHANNELS_SURROUND4
@ FFM_CHANNELS_STEREO
@ FFM_CHANNELS_SURROUND51
@ FFM_CHANNELS_SURROUND71
@ FFM_CHANNELS_MONO
eStereoViews
@ STEREO_MONO_ID
@ STEREO_LEFT_ID
@ STEREO_RIGHT_ID
@ STEREO_3D_ID
@ R_IMF_VIEWS_MULTIVIEW
@ R_IMF_VIEWS_STEREO_3D
@ R_IMF_VIEWS_INDIVIDUAL
eSeqImageFitMethod
@ SEQ_SCALE_TO_FILL
@ SEQ_STRETCH_TO_FILL
@ SEQ_USE_ORIGINAL_SIZE
@ SEQ_SCALE_TO_FIT
enum eSculptTransformMode eSculptTrasnformMode
eSculptTransformMode
@ SCULPT_TRANSFORM_MODE_RADIUS_ELASTIC
@ SCULPT_TRANSFORM_MODE_ALL_VERTICES
struct RenderProfile RenderProfile
@ GPPAINT_FLAG_USE_VERTEXCOLOR
@ GPPAINT_FLAG_USE_MATERIAL
struct GpWeightPaint GpWeightPaint
struct FFMpegCodecData FFMpegCodecData
@ R_COLOR_MANAGEMENT
@ R_COLOR_MANAGEMENT_UNUSED_1
eBakeSaveMode
@ R_BAKE_SAVE_EXTERNAL
@ R_BAKE_SAVE_INTERNAL
struct Sculpt Sculpt
eBakePassFilter
@ R_BAKE_PASS_FILTER_DIFFUSE
@ R_BAKE_PASS_FILTER_NONE
@ R_BAKE_PASS_FILTER_COLOR
@ R_BAKE_PASS_FILTER_SUBSURFACE
@ R_BAKE_PASS_FILTER_INDIRECT
@ R_BAKE_PASS_FILTER_DIRECT
@ R_BAKE_PASS_FILTER_UNUSED
@ R_BAKE_PASS_FILTER_GLOSSY
@ R_BAKE_PASS_FILTER_EMIT
@ R_BAKE_PASS_FILTER_TRANSM
eScenePassType
@ SCE_PASS_NORMAL
@ SCE_PASS_UNUSED_5
@ SCE_PASS_GLOSSY_DIRECT
@ SCE_PASS_AO
@ SCE_PASS_DIFFUSE_COLOR
@ SCE_PASS_POSITION
@ SCE_PASS_UV
@ SCE_PASS_SUBSURFACE_INDIRECT
@ SCE_PASS_TRANSM_DIRECT
@ SCE_PASS_SUBSURFACE_COLOR
@ SCE_PASS_GLOSSY_COLOR
@ SCE_PASS_DIFFUSE_DIRECT
@ SCE_PASS_GLOSSY_INDIRECT
@ SCE_PASS_UNUSED_7
@ SCE_PASS_INDEXMA
@ SCE_PASS_INDEXOB
@ SCE_PASS_TRANSM_INDIRECT
@ SCE_PASS_UNUSED_6
@ SCE_PASS_COMBINED
@ SCE_PASS_Z
@ SCE_PASS_VECTOR
@ SCE_PASS_ROUGHNESS
@ SCE_PASS_UNUSED_3
@ SCE_PASS_DIFFUSE_INDIRECT
@ SCE_PASS_SUBSURFACE_DIRECT
@ SCE_PASS_UNUSED_1
@ SCE_PASS_SHADOW
@ SCE_PASS_TRANSM_COLOR
@ SCE_PASS_UNUSED_2
@ SCE_PASS_MIST
@ SCE_PASS_EMIT
@ SCE_PASS_ENVIRONMENT
struct ParticleEditSettings ParticleEditSettings
@ CURVE_PAINT_FIT_METHOD_REFIT
@ CURVE_PAINT_FIT_METHOD_SPLIT
struct AudioData AudioData
@ SCE_VIEWS_FORMAT_STEREO_3D
@ SCE_VIEWS_FORMAT_MULTIVIEW
eVGroupSelect
@ WT_VGROUP_BONE_SELECT
@ WT_VGROUP_ALL
@ WT_VGROUP_BONE_DEFORM_OFF
@ WT_VGROUP_ACTIVE
@ WT_VGROUP_BONE_DEFORM
eSnapMode
@ SCE_SNAP_MODE_FACE_NEAREST
@ SCE_SNAP_MODE_EDGE_MIDPOINT
@ SCE_SNAP_MODE_VERTEX
@ SCE_SNAP_MODE_EDGE
@ SCE_SNAP_MODE_INCREMENT
@ SCE_SNAP_MODE_NODE_Y
@ SCE_SNAP_MODE_FACE_RAYCAST
@ SCE_SNAP_MODE_VOLUME
@ SCE_SNAP_MODE_GRID
@ SCE_SNAP_MODE_EDGE_PERPENDICULAR
@ SCE_SNAP_MODE_NONE
@ SCE_SNAP_MODE_GEOM
@ SCE_SNAP_MODE_NODE_X
struct Paint Paint
char _pad2[4]
float doppler_factor
char _pad[2]
float speed_of_sound
unsigned int cbFormat
unsigned int fccHandler
unsigned int dwInterleaveEvery
char avicodecname[128]
unsigned int dwKeyFrameEvery
unsigned int dwQuality
unsigned int cbParms
unsigned int dwBytesPerSecond
unsigned int dwFlags
unsigned int fccType
char normal_space
char margin_type
char normal_swizzle[3]
struct Object * cage_object
float max_ray_distance
float cage_extrusion
char _pad[5]
char filepath[1024]
struct ImageFormatData im_format
struct CurveMapping * custom_ipo
struct Object * reference_object
struct GP_Sculpt_Guide guide
struct CurveMapping * cur_primitive
struct CurveMapping * cur_falloff
Definition: DNA_ID.h:368
ColorManagedColorspaceSettings linear_colorspace_settings
ColorManagedDisplaySettings display_settings
ColorManagedViewSettings view_settings
Stereo3dFormat stereo3d_format
struct Image * stencil
struct Image * canvas
struct Image * clone
struct Brush * brush
unsigned short ob_mode
unsigned int tool_offset
struct Paint_Runtime runtime
float tile_offset[3]
int tool_slots_len
int num_input_samples
struct PaintToolSlot * tool_slots
int symmetry_flags
void * paint_cursor
unsigned char paint_cursor_col[4]
struct CurveMapping * cavity_curve
char _pad1[4]
struct Palette * palette
struct Brush * brush
char _pad2[4]
ParticleBrushData brush[7]
struct Object * shape_object
struct Object * object
struct Scene * scene
short quality DNA_DEPRECATED
float frs_sec_base
short simplify_subsurf
short simplify_gpencil
struct CurveMapping mblur_shutter_curve
char stamp_udata[768]
float simplify_particles
struct BakeData bake
short bake_samples
float fg_stamp[4]
short planes DNA_DEPRECATED
char engine[32]
float simplify_particles_render
struct ImageFormatData im_format
short stamp_font_id
short imtype DNA_DEPRECATED
float simplify_volumes
struct AviCodecData * avicodecdata
char pic[1024]
int tilex DNA_DEPRECATED
short subimtype DNA_DEPRECATED
short preview_pixel_size
float bg_stamp[4]
short stereomode DNA_DEPRECATED
float bake_biasdist
short actlay DNA_DEPRECATED
float dither_intensity
ListBase views
short simplify_subsurf_render
struct FFMpegCodecData ffcodecdata
short dimensionspreset
int line_thickness_mode
ListBase layers DNA_DEPRECATED
short bake_margin_type
short views_format
char use_lock_interface
float unit_line_thickness
float bake_user_scale
int tiley DNA_DEPRECATED
struct RenderProfile * prev
struct RenderProfile * next
float matcap_ssao_distance
float light_direction[3]
float matcap_ssao_attenuation
View3DShading shading
float volumetric_light_clamp
float volumetric_start
float motion_blur_shutter
float bokeh_denoise_fac
float bloom_intensity
float ssr_max_roughness
float gi_glossy_clamp
float gi_irradiance_smoothing
float volumetric_end
float sss_jitter_threshold
float bloom_color[3]
struct LightCache *light_cache DNA_DEPRECATED
int motion_blur_position
float bokeh_overblur
float volumetric_sample_distribution
float ssr_border_fade
float bloom_threshold
float bokeh_threshold
struct LightCache * light_cache_data
float bokeh_neighbor_max
int gi_visibility_resolution
float bokeh_max_size
float gi_filter_quality
float motion_blur_depth_scale
float gi_irradiance_draw_size
float gi_cubemap_draw_size
float light_threshold
char light_cache_info[64]
int volumetric_shadow_samples
float ssr_firefly_fac
int shadow_method DNA_DEPRECATED
int volumetric_tile_size
int gi_cubemap_resolution
int motion_blur_samples DNA_DEPRECATED
unsigned int lay_zmask DNA_DEPRECATED
int layflag DNA_DEPRECATED
char name[64] DNA_DEPRECATED
unsigned int lay DNA_DEPRECATED
struct Material *mat_override DNA_DEPRECATED
int passflag DNA_DEPRECATED
struct SceneRenderLayer * prev
unsigned int lay_exclude DNA_DEPRECATED
int pass_xor DNA_DEPRECATED
struct SceneRenderLayer * next
IDProperty *prop DNA_DEPRECATED
float pass_alpha_threshold DNA_DEPRECATED
int samples DNA_DEPRECATED
struct SceneRenderView * next
struct SceneRenderView * prev
void * _pad1
struct bNodeTree * nodetree
struct Collection * master_collection
char _pad3[1]
struct GHash * depsgraph_hash
void * sound_scrub_handle
struct PhysicsSettings physics_settings
ListBase base DNA_DEPRECATED
struct RigidBodyWorld * rigidbody_world
int layact DNA_DEPRECATED
int active_keyingset
IDProperty * layer_properties
void * sound_scene
struct SceneCollection *collection DNA_DEPRECATED
void * _pad4
struct SceneDisplay display
void * _pad9
struct CustomData_MeshMasks customdata_mask
struct SceneGpencil grease_pencil_settings
struct MovieClip * clip
short flag
ListBase keyingsets
void * fps_info
struct ToolSettings * toolsettings
ColorManagedViewSettings view_settings
struct PreviewImage * preview
char _pad7[4]
char _pad2[4]
struct Editing * ed
struct bGPdata * gpd
struct RenderData r
void * speaker_handles
View3DCursor cursor
ListBase view_layers
struct CustomData_MeshMasks customdata_mask_modal
TransformOrientationSlot orientation_slots[4]
struct AnimData * adt
struct UnitSettings unit
struct DisplaySafeAreas safe_areas
struct Object * camera
char use_nodes
ListBase markers
unsigned int lay DNA_DEPRECATED
ListBase transform_spaces
void * _pad8
struct World * world
ColorManagedColorspaceSettings sequencer_colorspace_settings
struct Scene * set
struct AudioData audio
struct SceneEEVEE eevee
struct Base *basact DNA_DEPRECATED
ColorManagedDisplaySettings display_settings
void * playback_handle
struct Object * gravity_object
float detail_percent
Paint paint
int radial_symm[3]
int transform_mode
int symmetrize_direction
char _pad[4]
float detail_size
int automasking_flags
float gravity_factor
float constant_detail
char name[64]
struct TimeMarker * prev
struct IDProperty * prop
struct Object * camera
unsigned int flag
struct TimeMarker * next
short sculpt_paint_settings DNA_DEPRECATED
char transform_pivot_point
struct CurvePaintSettings curve_paint_settings
GpWeightPaint * gp_weightpaint
struct ImagePaintSettings imapaint
struct CurveProfile * custom_bevel_profile_preset
char gpencil_selectmode_vertex
short snap_face_nearest_steps
GpPaint * gp_paint
struct SequencerToolSettings * sequencer_tool_settings
GpSculptPaint * gp_sculptpaint
struct PaintModeSettings paint_mode
struct UnifiedPaintSettings unified_paint_settings
short annotate_thickness
char gpencil_selectmode_edit
int sculpt_paint_unified_size DNA_DEPRECATED
float sculpt_paint_unified_unprojected_radius DNA_DEPRECATED
struct MeshStatVis statvis
struct GP_Interpolate_Settings gp_interpolate
struct ParticleEditSettings particle
char snap_transform_mode_flag
char edge_mode_live_unwrap
float normal_vector[3]
CurvesSculpt * curves_sculpt
char gpencil_selectmode_sculpt
UvSculpt * uvsculpt
struct GP_Sculpt_Settings gp_sculpt
GpVertexPaint * gp_vertexpaint
struct ColorSpace * colorspace
int radial_symm[3]
char _pad[3]