Blender  V2.93
DNA_scene_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19 
24 #pragma once
25 
26 #include "DNA_defs.h"
27 
28 /* XXX, temp feature - campbell */
29 #define DURIAN_CAMERA_SWITCH
30 
31 /* check for cyclic set-scene,
32  * libs can cause this case which is normally prevented, see (T#####) */
33 #define USE_SETSCENE_CHECK
34 
35 #include "DNA_ID.h"
36 #include "DNA_color_types.h" /* color management */
37 #include "DNA_customdata_types.h" /* Scene's runtime cddata masks. */
38 #include "DNA_layer_types.h"
39 #include "DNA_listBase.h"
40 #include "DNA_vec_types.h"
41 #include "DNA_view3d_types.h"
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
47 struct AnimData;
48 struct Brush;
49 struct Collection;
50 struct ColorSpace;
51 struct CurveMapping;
52 struct CurveProfile;
54 struct Editing;
55 struct Image;
56 struct MovieClip;
57 struct Object;
58 struct Scene;
59 struct SceneCollection;
60 struct World;
61 struct bGPdata;
62 struct bNodeTree;
63 
64 /* ************************************************************* */
65 /* Scene Data */
66 
67 /* ************************************************************* */
68 /* Output Format Data */
69 
70 typedef struct AviCodecData {
72  void *lpFormat;
74  void *lpParms;
76  unsigned int cbFormat;
78  unsigned int cbParms;
79 
81  unsigned int fccType;
83  unsigned int fccHandler;
85  unsigned int dwKeyFrameEvery;
87  unsigned int dwQuality;
89  unsigned int dwBytesPerSecond;
91  unsigned int dwFlags;
93  unsigned int dwInterleaveEvery;
94  char _pad[4];
95 
96  char avicodecname[128];
98 
99 typedef enum eFFMpegPreset {
101 
102 #ifdef DNA_DEPRECATED_ALLOW
103  /* Previously used by h.264 to control encoding speed vs. file size. */
104  FFM_PRESET_ULTRAFAST = 1, /* DEPRECATED */
105  FFM_PRESET_SUPERFAST = 2, /* DEPRECATED */
106  FFM_PRESET_VERYFAST = 3, /* DEPRECATED */
107  FFM_PRESET_FASTER = 4, /* DEPRECATED */
108  FFM_PRESET_FAST = 5, /* DEPRECATED */
109  FFM_PRESET_MEDIUM = 6, /* DEPRECATED */
110  FFM_PRESET_SLOW = 7, /* DEPRECATED */
111  FFM_PRESET_SLOWER = 8, /* DEPRECATED */
112  FFM_PRESET_VERYSLOW = 9, /* DEPRECATED */
113 #endif
114 
115  /* Used by WEBM/VP9 and h.264 to control encoding speed vs. file size.
116  * WEBM/VP9 use these values directly, whereas h.264 map those to
117  * respectively the MEDIUM, SLOWER, and SUPERFAST presets.
118  */
126 
127 /* Mapping from easily-understandable descriptions to CRF values.
128  * Assumes we output 8-bit video. Needs to be remapped if 10-bit
129  * is output.
130  * We use a slightly wider than "subjectively sane range" according
131  * to https://trac.ffmpeg.org/wiki/Encode/H.264#a1.ChooseaCRFvalue
132  */
133 typedef enum eFFMpegCrf {
143 
144 typedef enum eFFMpegAudioChannels {
151 
152 typedef struct FFMpegCodecData {
153  int type;
154  int codec;
160  char _pad0[4];
162  int gop_size;
165  int flags;
169 
174  int mux_rate;
175  char _pad1[4];
176 
179 
180 /* ************************************************************* */
181 /* Audio */
182 
183 typedef struct AudioData {
184  int mixrate; /* 2.5: now in FFMpegCodecData: audio_mixrate */
185  float main; /* 2.5: now in FFMpegCodecData: audio_volume */
189  short flag;
190  char _pad[2];
191  float volume;
192  char _pad2[4];
194 
195 /* *************************************************************** */
196 /* Render Layers */
197 
198 /* Render Layer */
199 typedef struct SceneRenderLayer {
201 
203  char name[64] DNA_DEPRECATED;
204 
206  struct Material *mat_override DNA_DEPRECATED;
207 
209  unsigned int lay DNA_DEPRECATED;
211  unsigned int lay_zmask DNA_DEPRECATED;
212  unsigned int lay_exclude DNA_DEPRECATED;
214  int layflag DNA_DEPRECATED;
215 
216  /* pass_xor has to be after passflag */
218  int passflag DNA_DEPRECATED;
220  int pass_xor DNA_DEPRECATED;
221 
223  int samples DNA_DEPRECATED;
225  float pass_alpha_threshold DNA_DEPRECATED;
226 
229 
231  struct FreestyleConfig freestyleConfig DNA_DEPRECATED;
233 
235 #define SCE_LAY_SOLID (1 << 0)
236 #define SCE_LAY_ZTRA (1 << 1)
237 #define SCE_LAY_HALO (1 << 2)
238 #define SCE_LAY_EDGE (1 << 3)
239 #define SCE_LAY_SKY (1 << 4)
240 #define SCE_LAY_STRAND (1 << 5)
241 #define SCE_LAY_FRS (1 << 6)
242 #define SCE_LAY_AO (1 << 7)
243 #define SCE_LAY_VOLUMES (1 << 8)
244 /* flags between (1 << 8) and (1 << 15) are set to 1 already, for future options */
245 
246 #define SCE_LAY_ALL_Z (1 << 15)
247 /* #define SCE_LAY_XOR (1 << 16) */ /* UNUSED */
248 #define SCE_LAY_DISABLE (1 << 17)
249 #define SCE_LAY_ZMASK (1 << 18)
250 #define SCE_LAY_NEG_ZMASK (1 << 19)
251 
253 typedef enum eScenePassType {
254  SCE_PASS_COMBINED = (1 << 0),
255  SCE_PASS_Z = (1 << 1),
256  SCE_PASS_UNUSED_1 = (1 << 2), /* RGBA */
257  SCE_PASS_UNUSED_2 = (1 << 3), /* DIFFUSE */
258  SCE_PASS_UNUSED_3 = (1 << 4), /* SPEC */
259  SCE_PASS_SHADOW = (1 << 5),
260  SCE_PASS_AO = (1 << 6),
261  SCE_PASS_UNUSED_4 = (1 << 7), /* REFLECT */
262  SCE_PASS_NORMAL = (1 << 8),
263  SCE_PASS_VECTOR = (1 << 9),
264  SCE_PASS_UNUSED_5 = (1 << 10), /* REFRACT */
265  SCE_PASS_INDEXOB = (1 << 11),
266  SCE_PASS_UV = (1 << 12),
267  SCE_PASS_UNUSED_6 = (1 << 13), /* INDIRECT */
268  SCE_PASS_MIST = (1 << 14),
269  SCE_PASS_RAYHITS = (1 << 15),
270  SCE_PASS_EMIT = (1 << 16),
271  SCE_PASS_ENVIRONMENT = (1 << 17),
272  SCE_PASS_INDEXMA = (1 << 18),
285  SCE_PASS_ROUGHNESS = (1u << 31u),
287 
288 #define RE_PASSNAME_DEPRECATED "Deprecated"
289 
290 #define RE_PASSNAME_COMBINED "Combined"
291 #define RE_PASSNAME_Z "Depth"
292 #define RE_PASSNAME_VECTOR "Vector"
293 #define RE_PASSNAME_NORMAL "Normal"
294 #define RE_PASSNAME_UV "UV"
295 #define RE_PASSNAME_EMIT "Emit"
296 #define RE_PASSNAME_SHADOW "Shadow"
297 
298 #define RE_PASSNAME_AO "AO"
299 #define RE_PASSNAME_ENVIRONMENT "Env"
300 #define RE_PASSNAME_INDEXOB "IndexOB"
301 #define RE_PASSNAME_INDEXMA "IndexMA"
302 #define RE_PASSNAME_MIST "Mist"
303 
304 #define RE_PASSNAME_RAYHITS "RayHits"
305 #define RE_PASSNAME_DIFFUSE_DIRECT "DiffDir"
306 #define RE_PASSNAME_DIFFUSE_INDIRECT "DiffInd"
307 #define RE_PASSNAME_DIFFUSE_COLOR "DiffCol"
308 #define RE_PASSNAME_GLOSSY_DIRECT "GlossDir"
309 #define RE_PASSNAME_GLOSSY_INDIRECT "GlossInd"
310 #define RE_PASSNAME_GLOSSY_COLOR "GlossCol"
311 #define RE_PASSNAME_TRANSM_DIRECT "TransDir"
312 #define RE_PASSNAME_TRANSM_INDIRECT "TransInd"
313 #define RE_PASSNAME_TRANSM_COLOR "TransCol"
314 
315 #define RE_PASSNAME_SUBSURFACE_DIRECT "SubsurfaceDir"
316 #define RE_PASSNAME_SUBSURFACE_INDIRECT "SubsurfaceInd"
317 #define RE_PASSNAME_SUBSURFACE_COLOR "SubsurfaceCol"
318 
319 #define RE_PASSNAME_FREESTYLE "Freestyle"
320 #define RE_PASSNAME_BLOOM "BloomCol"
321 #define RE_PASSNAME_VOLUME_LIGHT "VolumeDir"
322 
323 /* View - MultiView */
324 typedef struct SceneRenderView {
326 
328  char name[64];
330  char suffix[64];
331 
332  int viewflag;
333  char _pad2[4];
334 
336 
338 #define SCE_VIEW_DISABLE (1 << 0)
339 
341 enum {
344 };
345 
347 enum {
351 };
352 
353 typedef struct Stereo3dFormat {
354  short flag;
361  char _pad[3];
363 
365 typedef enum eStereoDisplayMode {
372 
374 typedef enum eStereo3dFlag {
375  S3D_INTERLACE_SWAP = (1 << 0),
377  S3D_SQUEEZED_FRAME = (1 << 2),
379 
381 typedef enum eStereo3dAnaglyphType {
386 
393 
394 /* *************************************************************** */
395 
396 /* Generic image format settings,
397  * this is used for NodeImageFile and IMAGE_OT_save_as operator too.
398  *
399  * note: its a bit strange that even though this is an image format struct
400  * the imtype can still be used to select video formats.
401  * RNA ensures these enum's are only selectable for render output.
402  */
403 typedef struct ImageFormatData {
408  char imtype;
412  char depth;
413 
415  char planes;
417  char flag;
418 
420  char quality;
422  char compress;
423 
424  /* --- format specific --- */
425 
426  /* OpenEXR */
427  char exr_codec;
428 
429  /* Cineon */
433 
434  /* Jpeg2000 */
435  char jp2_flag;
436  char jp2_codec;
437 
438  /* TIFF */
440 
441  char _pad[4];
442 
443  /* Multiview */
446 
447  /* color management */
451 
453 #define R_IMF_IMTYPE_TARGA 0
454 #define R_IMF_IMTYPE_IRIS 1
455 /* #define R_HAMX 2 */ /* DEPRECATED */
456 /* #define R_FTYPE 3 */ /* DEPRECATED */
457 #define R_IMF_IMTYPE_JPEG90 4
458 /* #define R_MOVIE 5 */ /* DEPRECATED */
459 #define R_IMF_IMTYPE_IRIZ 7
460 #define R_IMF_IMTYPE_RAWTGA 14
461 #define R_IMF_IMTYPE_AVIRAW 15
462 #define R_IMF_IMTYPE_AVIJPEG 16
463 #define R_IMF_IMTYPE_PNG 17
464 /* #define R_IMF_IMTYPE_AVICODEC 18 */ /* DEPRECATED */
465 /* #define R_IMF_IMTYPE_QUICKTIME 19 */ /* DEPRECATED */
466 #define R_IMF_IMTYPE_BMP 20
467 #define R_IMF_IMTYPE_RADHDR 21
468 #define R_IMF_IMTYPE_TIFF 22
469 #define R_IMF_IMTYPE_OPENEXR 23
470 #define R_IMF_IMTYPE_FFMPEG 24
471 /* #define R_IMF_IMTYPE_FRAMESERVER 25 */ /* DEPRECATED */
472 #define R_IMF_IMTYPE_CINEON 26
473 #define R_IMF_IMTYPE_DPX 27
474 #define R_IMF_IMTYPE_MULTILAYER 28
475 #define R_IMF_IMTYPE_DDS 29
476 #define R_IMF_IMTYPE_JP2 30
477 #define R_IMF_IMTYPE_H264 31
478 #define R_IMF_IMTYPE_XVID 32
479 #define R_IMF_IMTYPE_THEORA 33
480 #define R_IMF_IMTYPE_PSD 34
481 
482 #define R_IMF_IMTYPE_INVALID 255
483 
485 #define R_IMF_FLAG_ZBUF (1 << 0) /* was R_OPENEXR_ZBUF */
486 #define R_IMF_FLAG_PREVIEW_JPG (1 << 1) /* was R_PREVIEW_JPG */
487 
488 /* Return values from #BKE_imtype_valid_depths, note this is depths per channel. */
490 typedef enum eImageFormatDepth {
491  /* 1bits (unused) */
492  R_IMF_CHAN_DEPTH_1 = (1 << 0),
493  /* 8bits (default) */
494  R_IMF_CHAN_DEPTH_8 = (1 << 1),
495  /* 10bits (uncommon, Cineon/DPX support) */
497  /* 12bits (uncommon, jp2/DPX support) */
499  /* 16bits (tiff, half float exr) */
501  /* 24bits (unused) */
503  /* 32bits (full float exr) */
506 
508 #define R_IMF_PLANES_RGB 24
509 #define R_IMF_PLANES_RGBA 32
510 #define R_IMF_PLANES_BW 8
511 
513 #define R_IMF_EXR_CODEC_NONE 0
514 #define R_IMF_EXR_CODEC_PXR24 1
515 #define R_IMF_EXR_CODEC_ZIP 2
516 #define R_IMF_EXR_CODEC_PIZ 3
517 #define R_IMF_EXR_CODEC_RLE 4
518 #define R_IMF_EXR_CODEC_ZIPS 5
519 #define R_IMF_EXR_CODEC_B44 6
520 #define R_IMF_EXR_CODEC_B44A 7
521 #define R_IMF_EXR_CODEC_DWAA 8
522 #define R_IMF_EXR_CODEC_DWAB 9
523 #define R_IMF_EXR_CODEC_MAX 10
524 
526 #define R_IMF_JP2_FLAG_YCC (1 << 0) /* when disabled use RGB */ /* was R_JPEG2K_YCC */
527 #define R_IMF_JP2_FLAG_CINE_PRESET (1 << 1) /* was R_JPEG2K_CINE_PRESET */
528 #define R_IMF_JP2_FLAG_CINE_48 (1 << 2) /* was R_JPEG2K_CINE_48FPS */
529 
531 #define R_IMF_JP2_CODEC_JP2 0
532 #define R_IMF_JP2_CODEC_J2K 1
533 
535 #define R_IMF_CINEON_FLAG_LOG (1 << 0) /* was R_CINEON_LOG */
536 
538 enum {
543 };
544 
545 typedef struct BakeData {
546  struct ImageFormatData im_format;
547 
549  char filepath[1024];
550 
551  short width, height;
552  short margin, flag;
553 
557 
558  char normal_swizzle[3];
560 
561  char target;
562  char save_mode;
563  char _pad[6];
564 
567 
569 typedef enum eBakeNormalSwizzle {
577 
579 typedef enum eBakeTarget {
583 
585 typedef enum eBakeSaveMode {
589 
591 typedef enum eBakePassFilter {
603 
604 #define R_BAKE_PASS_FILTER_ALL (~0)
605 
606 /* *************************************************************** */
607 /* Render Data */
608 
609 typedef struct RenderData {
610  struct ImageFormatData im_format;
611 
614 
616  int cfra, sfra, efra;
618  float subframe;
620  int psfra, pefra;
621 
623  short flag, threads;
624 
626 
629  /* XXX deprecated since .2.5 */
631  short stereomode DNA_DEPRECATED;
632 
635 
637  short size;
638 
639  char _pad6[2];
640 
641  /* from buttons: */
645  int xsch;
649  int ysch;
650 
654  int tilex, tiley;
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 
703  float gauss;
704 
705  /* color management settings - color profiles, gamma correction, etc */
707 
708  /* Dither noise intensity */
710 
711  /* Bake Render options */
715 
716  /* path to render output */
718  char pic[1024];
719 
720  /* stamps flags. */
721  int stamp;
724  char _pad3[2];
725 
726  /* stamp info user data. */
727  char stamp_udata[768];
728 
729  /* foreground/background color. */
730  float fg_stamp[4];
731  float bg_stamp[4];
732 
733  /* sequencer options */
738  char seq_flag;
739  char _pad5[3];
740 
741  /* render simplify */
748 
749  /* Freestyle line thickness options */
753 
754  /* render engine */
755  char engine[32];
756  char _pad2[2];
757 
758  /* Performance Options */
759  short perf_flag;
760 
761  /* Cycles baking */
762  struct BakeData bake;
763 
766 
767  /* Type of the debug pass to use.
768  * Only used when built with debug passes support.
769  */
771 
772  /* MultiView */
775  short actview;
777 
778  /* Hair Display */
780 
781  /* Motion blur shutter */
784 
785 /* RenderData.quality_flag */
786 typedef enum eQualityOption {
789 
790 /* RenderData.hair_type */
791 typedef enum eHairType {
795 
796 /* *************************************************************** */
797 /* Render Conversion/Simplification Settings */
798 
799 /* control render convert and shading engine */
800 typedef struct RenderProfile {
802  char name[32];
803 
805  short subsurf_max;
807  char _pad1[2];
808 
809  float ao_error;
810  char _pad2[4];
811 
813 
814 /* UV Paint */
816 #define UV_SCULPT_LOCK_BORDERS 1
817 #define UV_SCULPT_ALL_ISLANDS 2
818 
820 #define UV_SCULPT_TOOL_RELAX_LAPLACIAN 1
821 #define UV_SCULPT_TOOL_RELAX_HC 2
822 
823 /* Stereo Flags */
824 #define STEREO_RIGHT_NAME "right"
825 #define STEREO_LEFT_NAME "left"
826 #define STEREO_RIGHT_SUFFIX "_R"
827 #define STEREO_LEFT_SUFFIX "_L"
828 
829 /* View3D.stereo3d_camera / View3D.multiview_eye / ImageUser.multiview_eye */
830 typedef enum eStereoViews {
836 
837 /* *************************************************************** */
838 /* Markers */
839 
840 typedef struct TimeMarker {
841  struct TimeMarker *next, *prev;
842  int frame;
843  char name[64];
844  unsigned int flag;
845  struct Object *camera;
846  struct IDProperty *prop;
848 
849 /* *************************************************************** */
850 /* Paint Mode/Tool Data */
851 
852 #define PAINT_MAX_INPUT_SAMPLES 64
853 
854 typedef struct Paint_Runtime {
855  /* Avoid having to compare with scene pointer everywhere. */
856  unsigned int tool_offset;
857  unsigned short ob_mode;
858  char _pad[2];
860 
861 /* We might want to store other things here. */
862 typedef struct PaintToolSlot {
863  struct Brush *brush;
865 
866 /* Paint Tool Base */
867 typedef struct Paint {
868  struct Brush *brush;
869 
870  /* Each tool has its own active brush,
871  * The currently active tool is defined by the current 'brush'. */
874  char _pad1[4];
875 
876  struct Palette *palette;
879 
880  /* WM Paint cursor */
882  unsigned char paint_cursor_col[4];
883 
884  /* enum ePaintFlags */
885  int flags;
886 
887  /* Paint stroke can use up to PAINT_MAX_INPUT_SAMPLES inputs to
888  * smooth the stroke */
890 
891  /* flags used for symmetry */
893 
894  float tile_offset[3];
895  char _pad2[4];
896 
897  struct Paint_Runtime runtime;
899 
900 /* ------------------------------------------- */
901 /* Image Paint */
902 
903 /* Texture/Image Editor */
904 typedef struct ImagePaintSettings {
906 
908 
909  /* for projection painting only */
913 
915  int mode;
916 
918  struct Image *stencil;
920  struct Image *clone;
922  struct Image *canvas;
923  float stencil_col[3];
925  float dither;
927  int interp;
928  char _pad[4];
930 
931 /* ------------------------------------------- */
932 /* Particle Edit */
933 
934 /* Settings for a Particle Editing Brush */
935 typedef struct ParticleBrushData {
937  short size;
939  short step, invert, count;
940  int flag;
941  float strength;
943 
944 /* Particle Edit Mode Settings */
945 typedef struct ParticleEditSettings {
946  short flag;
947  short totrekey;
948  short totaddkey;
949  short brushtype;
950 
953  void *paintcursor;
954 
955  float emitterdist, rt;
956 
958  int edittype;
959 
961 
962  struct Scene *scene;
963  struct Object *object;
966 
967 /* ------------------------------------------- */
968 /* Sculpt */
969 
970 /* Sculpt */
971 typedef struct Sculpt {
973 
974  /* For rotating around a pivot point */
975  // float pivot[3]; XXX not used?
976  int flags;
977 
979 
980  /* Control tablet input */
981  // char tablet_size, tablet_strength; XXX not used?
982  int radial_symm[3];
983 
984  /* Maximum edge length for dynamic topology sculpting (in pixels) */
985  float detail_size;
986 
987  /* Direction used for SCULPT_OT_symmetrize operator */
989 
990  /* gravity factor for sculpting */
992 
993  /* scale for constant detail size */
997 
1000 
1001 typedef struct UvSculpt {
1004 
1005 /* grease pencil drawing brushes */
1006 typedef struct GpPaint {
1008  int flag;
1009  /* Mode of paint (Materials or Vertex Color). */
1010  int mode;
1012 
1014 enum {
1017 };
1018 
1019 /* Grease pencil vertex paint. */
1020 typedef struct GpVertexPaint {
1022  int flag;
1023  char _pad[4];
1025 
1026 /* Grease pencil sculpt paint. */
1027 typedef struct GpSculptPaint {
1029  int flag;
1030  char _pad[4];
1032 
1033 /* Grease pencil weight paint. */
1034 typedef struct GpWeightPaint {
1036  int flag;
1037  char _pad[4];
1039 
1040 /* ------------------------------------------- */
1041 /* Vertex Paint */
1042 
1043 /* Vertex Paint */
1044 typedef struct VPaint {
1046  char flag;
1047  char _pad[3];
1049  int radial_symm[3];
1051 
1053 enum {
1054  /* weight paint only */
1056 };
1057 
1058 /* ------------------------------------------- */
1059 /* GPencil Stroke Sculpting */
1060 
1061 /* GP_Sculpt_Settings.lock_axis */
1062 typedef enum eGP_Lockaxis_Types {
1069 
1070 /* Settings for a GPencil Speed Guide */
1071 typedef struct GP_Sculpt_Guide {
1075  char type;
1076  char _pad2[4];
1077  float angle;
1078  float angle_snap;
1079  float spacing;
1080  float location[3];
1083 
1084 /* GPencil Stroke Sculpting Settings */
1085 typedef struct GP_Sculpt_Settings {
1089  int flag;
1094  char _pad[4];
1100  struct GP_Sculpt_Guide guide;
1102 
1112 
1122 
1132 
1133 /* Settings for GP Interpolation Operators */
1134 typedef struct GP_Interpolate_Settings {
1138 
1141  /* apply interpolation to all layers */
1143  /* apply interpolation to only selected */
1146 
1148 typedef enum eGP_Interpolate_Type {
1149  /* Traditional Linear Interpolation */
1151 
1152  /* CurveMap Defined Interpolation */
1154 
1155  /* Easing Equations */
1167 
1168 /* *************************************************************** */
1169 /* Unified Paint Settings
1170  */
1171 
1172 /* These settings can override the equivalent fields in the active
1173  * Brush for any paint mode; the flag field controls whether these
1174  * values are used */
1175 typedef struct UnifiedPaintSettings {
1176  /* unified radius of brush in pixels */
1177  int size;
1178 
1179  /* unified radius of brush in Blender units */
1181 
1182  /* unified strength of brush */
1183  float alpha;
1184 
1185  /* unified brush weight, [0, 1] */
1186  float weight;
1187 
1188  /* unified brush color */
1189  float rgb[3];
1190  /* unified brush secondary color */
1191  float secondary_rgb[3];
1192 
1193  /* user preferences for sculpt and paint */
1194  int flag;
1195 
1196  /* rake rotation */
1197 
1198  /* record movement of mouse so that rake can start at an intuitive angle */
1199  float last_rake[2];
1201 
1205 
1208 
1209  /*******************************************************************************
1210  * all data below are used to communicate with cursor drawing and tex sampling *
1211  *******************************************************************************/
1213 
1221  /* check is there an ongoing stroke right now */
1223 
1226 
1227  /* store last location of stroke or whether the mesh was hit.
1228  * Valid only while stroke is active */
1229  float last_location[3];
1231 
1233 
1234  /* radius of brush, premultiplied with pressure.
1235  * In case of anchored brushes contains the anchored radius */
1238 
1239  char _pad[4];
1240 
1241  /* drawing pressure */
1243 
1244  /* position of mouse, used to sample the texture */
1245  float tex_mouse[2];
1246 
1247  /* position of mouse, used to sample the mask texture */
1248  float mask_tex_mouse[2];
1249 
1250  /* ColorSpace cache to avoid locking up during sampling */
1253 
1254 /* UnifiedPaintSettings.flag */
1255 typedef enum {
1260 
1261  /* only used if unified size is enabled, mirrors the brush flag BRUSH_LOCK_SIZE */
1264 
1267 
1268 typedef struct CurvePaintSettings {
1270  char flag;
1274  char _pad;
1281 
1283 enum {
1288 };
1289 
1291 enum {
1294 };
1295 
1297 enum {
1300 };
1301 
1303 enum {
1307 };
1308 
1309 /* *************************************************************** */
1310 /* Stats */
1311 
1312 /* Stats for Meshes */
1313 typedef struct MeshStatVis {
1314  char type;
1315  char _pad1[2];
1316 
1317  /* overhang */
1320 
1321  /* thickness */
1324  char _pad2[3];
1325 
1326  /* distort */
1328 
1329  /* sharp */
1332 
1333 typedef struct SequencerToolSettings {
1334  /* eSeqImageFitMethod */
1337 
1338 typedef enum eSeqImageFitMethod {
1344 
1345 /* *************************************************************** */
1346 /* Tool Settings */
1347 
1349 enum {
1350  AUTO_MERGE = 1 << 0,
1352 };
1353 
1354 typedef struct ToolSettings {
1370 
1371  /* Vertex group weight - used only for editmode, not weight
1372  * paint */
1374 
1376  float doublimit;
1379 
1380  /* Selection Mode for Mesh */
1381  short selectmode;
1382 
1383  /* UV Calculation */
1386  char uv_flag;
1388 
1390 
1391  /* Auto-IK */
1394 
1395  /* Grease Pencil */
1398 
1407 
1408  /* Annotations */
1411 
1418 
1419  /* Grease Pencil Sculpt */
1421 
1422  /* Grease Pencil Interpolation Tool(s) */
1424 
1425  /* Image Paint (8 bytes aligned please!) */
1427 
1428  /* Particle Editing */
1430 
1431  /* Transform Proportional Area of Effect */
1433 
1434  /* Select Group Threshold */
1436 
1437  /* Auto-Keying Mode */
1443 
1444  /* Multires */
1446 
1447  /* Edge tagging, store operator settings (no UI access). */
1449 
1451 
1452  char _pad1[1];
1453 
1454  /* Transform */
1462 
1474 
1485 
1488 
1489  /* UV painting */
1490  char _pad2[1];
1493  /* XXX: these sculpt_paint_* fields are deprecated, use the
1494  * unified_paint_settings field instead! */
1495  short sculpt_paint_settings DNA_DEPRECATED;
1496 
1498 
1499  char _pad5[1];
1500  int sculpt_paint_unified_size DNA_DEPRECATED;
1501  float sculpt_paint_unified_unprojected_radius DNA_DEPRECATED;
1502  float sculpt_paint_unified_alpha DNA_DEPRECATED;
1503 
1504  /* Unified Paint Settings */
1506 
1508 
1509  struct MeshStatVis statvis;
1510 
1511  /* Normal Editing */
1512  float normal_vector[3];
1513  char _pad6[4];
1514 
1515  /* Custom Curve Profile for bevel tool:
1516  * Temporary until there is a proper preset system that stores the profiles or maybe stores
1517  * entire bevel configurations. */
1519 
1521 
1523 
1524 /* *************************************************************** */
1525 /* Assorted Scene Data */
1526 
1527 /* ------------------------------------------- */
1528 /* Unit Settings */
1529 
1530 typedef struct UnitSettings {
1531  /* Display/Editing unit options for each scene */
1535  char system;
1538  short flag;
1539 
1544 
1545  char _pad[4];
1547 
1548 /* ------------------------------------------- */
1549 /* Global/Common Physics Settings */
1550 
1551 typedef struct PhysicsSettings {
1552  float gravity[3];
1555 
1556 /* ------------------------------------------- */
1557 /* Safe Area options used in Camera View & Sequencer
1558  */
1559 typedef struct DisplaySafeAreas {
1560  /* each value represents the (x,y) margins as a multiplier.
1561  * 'center' in this context is just the name for a different kind of safe-area */
1562 
1564  float title[2];
1566  float action[2];
1567 
1568  /* use for alternate aspect ratio */
1569  float title_center[2];
1570  float action_center[2];
1572 
1573 /* ------------------------------------------- */
1574 /* Scene Display - used for store scene specific display settings for the 3d view */
1575 typedef struct SceneDisplay {
1579 
1584 
1588  char _pad[6];
1589 
1593 
1594 typedef struct SceneEEVEE {
1595  int flag;
1602 
1605 
1610 
1616 
1624 
1628 
1634 
1635  float bloom_color[3];
1637  float bloom_knee;
1641 
1642  int motion_blur_samples DNA_DEPRECATED;
1648 
1649  int shadow_method DNA_DEPRECATED;
1652 
1653  struct LightCache *light_cache DNA_DEPRECATED;
1656 
1657  float overscan;
1660 
1661 typedef struct SceneGpencil {
1663  char _pad[4];
1665 
1666 /* *************************************************************** */
1667 /* Scene ID-Block */
1668 
1670  int type;
1672  char flag;
1673  char _pad0[7];
1675 
1677 enum {
1682 };
1683 
1684 typedef struct Scene {
1687  struct AnimData *adt;
1688 
1689  struct Object *camera;
1690  struct World *world;
1691 
1692  struct Scene *set;
1693 
1696  struct Base *basact DNA_DEPRECATED;
1697  void *_pad1;
1698 
1701 
1703  unsigned int lay DNA_DEPRECATED;
1705  int layact DNA_DEPRECATED;
1706  char _pad2[4];
1707 
1709  short flag;
1710 
1712  char _pad3[1];
1713 
1715 
1717  struct Editing *ed;
1718 
1721  void *_pad4;
1723 
1724  /* migrate or replace? depends on some internal things... */
1725  /* no, is on the right place (ton) */
1726  struct RenderData r;
1727  struct AudioData audio;
1728 
1731 
1734 
1739 
1741  void *fps_info;
1742 
1743  /* none of the dependency graph vars is mean to be saved */
1745  char _pad7[4];
1746 
1747  /* User-Defined KeyingSets */
1755 
1756  /* Units */
1757  struct UnitSettings unit;
1758 
1760  struct bGPdata *gpd;
1761 
1762  /* Movie Tracking */
1764  struct MovieClip *clip;
1765 
1766  /* Physics simulation settings */
1768 
1769  void *_pad8;
1770  /* XXX. runtime flag for drawing, actually belongs in the window,
1771  * only used by BKE_object_handle_update() */
1773  /* XXX. same as above but for temp operator use (gl renders) */
1775 
1776  /* Color Management */
1780 
1781  /* RigidBody simulation world+settings */
1783 
1785 
1787  /* Not an actual datablock, but memory owned by scene. */
1789  struct SceneCollection *collection DNA_DEPRECATED;
1790 
1793  void *_pad9;
1794 
1795  struct SceneDisplay display;
1796  struct SceneEEVEE eevee;
1798 } Scene;
1799 
1800 /* **************** RENDERDATA ********************* */
1801 
1803 /* use preview range */
1804 #define SCER_PRV_RANGE (1 << 0)
1805 #define SCER_LOCK_FRAME_SELECTION (1 << 1)
1806 /* show/use subframes (for checking motion blur) */
1807 #define SCER_SHOW_SUBFRAME (1 << 3)
1808 
1810 #define R_MODE_UNUSED_0 (1 << 0) /* dirty */
1811 #define R_MODE_UNUSED_1 (1 << 1) /* cleared */
1812 #define R_MODE_UNUSED_2 (1 << 2) /* cleared */
1813 #define R_MODE_UNUSED_3 (1 << 3) /* cleared */
1814 #define R_MODE_UNUSED_4 (1 << 4) /* cleared */
1815 #define R_MODE_UNUSED_5 (1 << 5) /* cleared */
1816 #define R_MODE_UNUSED_6 (1 << 6) /* cleared */
1817 #define R_MODE_UNUSED_7 (1 << 7) /* cleared */
1818 #define R_MODE_UNUSED_8 (1 << 8) /* cleared */
1819 #define R_BORDER (1 << 9)
1820 #define R_MODE_UNUSED_10 (1 << 10) /* cleared */
1821 #define R_CROP (1 << 11)
1822 /* Disable camera switching: runtime (DURIAN_CAMERA_SWITCH) */
1823 #define R_NO_CAMERA_SWITCH (1 << 12)
1824 #define R_MODE_UNUSED_13 (1 << 13) /* cleared */
1825 #define R_MBLUR (1 << 14)
1826 /* unified was here */
1827 #define R_MODE_UNUSED_16 (1 << 16) /* cleared */
1828 #define R_MODE_UNUSED_17 (1 << 17) /* cleared */
1829 #define R_MODE_UNUSED_18 (1 << 18) /* cleared */
1830 #define R_MODE_UNUSED_19 (1 << 19) /* cleared */
1831 #define R_FIXED_THREADS (1 << 19)
1832 
1833 #define R_MODE_UNUSED_20 (1 << 20) /* cleared */
1834 #define R_MODE_UNUSED_21 (1 << 21) /* cleared */
1835 #define R_NO_OVERWRITE (1 << 22) /* skip existing files */
1836 #define R_TOUCH (1 << 23) /* touch files before rendering */
1837 #define R_SIMPLIFY (1 << 24)
1838 #define R_EDGE_FRS (1 << 25) /* R_EDGE reserved for Freestyle */
1839 #define R_PERSISTENT_DATA (1 << 26) /* keep data around for re-render */
1840 #define R_MODE_UNUSED_27 (1 << 27) /* cleared */
1841 
1843 enum {
1844  R_SEQ_UNUSED_0 = (1 << 0), /* cleared */
1845  R_SEQ_UNUSED_1 = (1 << 1), /* cleared */
1846  R_SEQ_UNUSED_2 = (1 << 2), /* cleared */
1847  R_SEQ_UNUSED_3 = (1 << 3), /* cleared */
1848  R_SEQ_UNUSED_4 = (1 << 4), /* cleared */
1850 };
1851 
1853 #define R_FILTER_BOX 0
1854 #define R_FILTER_TENT 1
1855 #define R_FILTER_QUAD 2
1856 #define R_FILTER_CUBIC 3
1857 #define R_FILTER_CATROM 4
1858 #define R_FILTER_GAUSS 5
1859 #define R_FILTER_MITCH 6
1860 #define R_FILTER_FAST_GAUSS 7
1861 
1863 #define R_DOSEQ (1 << 0)
1864 #define R_BG_RENDER (1 << 1)
1865 /* passepartout is camera option now, keep this for backward compatibility */
1866 #define R_PASSEPARTOUT (1 << 2)
1867 #define R_BUTS_PREVIEW (1 << 3)
1868 #define R_EXTENSION (1 << 4)
1869 #define R_MATNODE_PREVIEW (1 << 5)
1870 #define R_DOCOMP (1 << 6)
1871 #define R_COMP_CROP (1 << 7)
1872 #define R_SCEMODE_UNUSED_8 (1 << 8) /* cleared */
1873 #define R_SINGLE_LAYER (1 << 9)
1874 #define R_EXR_TILE_FILE (1 << 10)
1875 #define R_SCEMODE_UNUSED_11 (1 << 11) /* cleared */
1876 #define R_NO_IMAGE_LOAD (1 << 12)
1877 #define R_SCEMODE_UNUSED_13 (1 << 13) /* cleared */
1878 #define R_NO_FRAME_UPDATE (1 << 14)
1879 #define R_FULL_SAMPLE (1 << 15)
1880 #define R_SCEMODE_UNUSED_16 (1 << 16) /* cleared */
1881 #define R_SCEMODE_UNUSED_17 (1 << 17) /* cleared */
1882 #define R_TEXNODE_PREVIEW (1 << 18)
1883 #define R_SCEMODE_UNUSED_19 (1 << 19) /* cleared */
1884 #define R_EXR_CACHE_FILE (1 << 20)
1885 #define R_MULTIVIEW (1 << 21)
1886 
1888 #define R_STAMP_TIME (1 << 0)
1889 #define R_STAMP_FRAME (1 << 1)
1890 #define R_STAMP_DATE (1 << 2)
1891 #define R_STAMP_CAMERA (1 << 3)
1892 #define R_STAMP_SCENE (1 << 4)
1893 #define R_STAMP_NOTE (1 << 5)
1894 #define R_STAMP_DRAW (1 << 6) /* draw in the image */
1895 #define R_STAMP_MARKER (1 << 7)
1896 #define R_STAMP_FILENAME (1 << 8)
1897 #define R_STAMP_SEQSTRIP (1 << 9)
1898 #define R_STAMP_RENDERTIME (1 << 10)
1899 #define R_STAMP_CAMERALENS (1 << 11)
1900 #define R_STAMP_STRIPMETA (1 << 12)
1901 #define R_STAMP_MEMORY (1 << 13)
1902 #define R_STAMP_HIDE_LABELS (1 << 14)
1903 #define R_STAMP_FRAME_RANGE (1 << 15)
1904 #define R_STAMP_HOSTNAME (1 << 16)
1905 #define R_STAMP_ALL \
1906  (R_STAMP_TIME | R_STAMP_FRAME | R_STAMP_DATE | R_STAMP_CAMERA | R_STAMP_SCENE | R_STAMP_NOTE | \
1907  R_STAMP_MARKER | R_STAMP_FILENAME | R_STAMP_SEQSTRIP | R_STAMP_RENDERTIME | \
1908  R_STAMP_CAMERALENS | R_STAMP_MEMORY | R_STAMP_HIDE_LABELS | R_STAMP_FRAME_RANGE | \
1909  R_STAMP_HOSTNAME)
1910 
1912 enum {
1915 };
1916 
1918 enum {
1922 };
1923 
1924 /* bake_mode: same as RE_BAKE_xxx defines */
1926 #define R_BAKE_CLEAR (1 << 0)
1927 /* #define R_BAKE_OSA (1 << 1) */ /* deprecated */
1928 #define R_BAKE_TO_ACTIVE (1 << 2)
1929 /* #define R_BAKE_NORMALIZE (1 << 3) */ /* deprecated */
1930 #define R_BAKE_MULTIRES (1 << 4)
1931 #define R_BAKE_LORES_MESH (1 << 5)
1932 /* #define R_BAKE_VCOL (1 << 6) */ /* deprecated */
1933 #define R_BAKE_USERSCALE (1 << 7)
1934 #define R_BAKE_CAGE (1 << 8)
1935 #define R_BAKE_SPLIT_MAT (1 << 9)
1936 #define R_BAKE_AUTO_NAME (1 << 10)
1937 
1939 #define R_BAKE_SPACE_CAMERA 0
1940 #define R_BAKE_SPACE_WORLD 1
1941 #define R_BAKE_SPACE_OBJECT 2
1942 #define R_BAKE_SPACE_TANGENT 3
1943 
1945 #define R_LINE_THICKNESS_ABSOLUTE 1
1946 #define R_LINE_THICKNESS_RELATIVE 2
1947 
1948 /* sequencer seq_prev_type seq_rend_type */
1949 
1951 extern const char *RE_engine_id_BLENDER_EEVEE;
1952 extern const char *RE_engine_id_BLENDER_WORKBENCH;
1953 extern const char *RE_engine_id_CYCLES;
1954 
1955 /* **************** SCENE ********************* */
1956 
1957 /* note that much higher maxframes give imprecise sub-frames, see: T46859 */
1958 /* Current precision is 16 for the sub-frames closer to MAXFRAME. */
1959 
1960 /* for general use */
1961 #define MAXFRAME 1048574
1962 #define MAXFRAMEF 1048574.0f
1963 
1964 #define MINFRAME 0
1965 #define MINFRAMEF 0.0f
1966 
1967 /* (minimum frame number for current-frame) */
1968 #define MINAFRAME -1048574
1969 #define MINAFRAMEF -1048574.0f
1970 
1971 #define BASE_VISIBLE(v3d, base) BKE_base_is_visible(v3d, base)
1972 #define BASE_SELECTABLE(v3d, base) \
1973  (BASE_VISIBLE(v3d, base) && \
1974  ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_select) == 0)) && \
1975  (((base)->flag & BASE_SELECTABLE) != 0))
1976 #define BASE_SELECTED(v3d, base) (BASE_VISIBLE(v3d, base) && (((base)->flag & BASE_SELECTED) != 0))
1977 #define BASE_EDITABLE(v3d, base) (BASE_VISIBLE(v3d, base) && ((base)->object->id.lib == NULL))
1978 #define BASE_SELECTED_EDITABLE(v3d, base) \
1979  (BASE_EDITABLE(v3d, base) && (((base)->flag & BASE_SELECTED) != 0))
1980 
1981 /* deprecate this! */
1982 #define FIRSTBASE(_view_layer) ((_view_layer)->object_bases.first)
1983 #define LASTBASE(_view_layer) ((_view_layer)->object_bases.last)
1984 #define BASACT(_view_layer) ((_view_layer)->basact)
1985 #define OBACT(_view_layer) (BASACT(_view_layer) ? BASACT(_view_layer)->object : NULL)
1986 
1987 #define OBEDIT_FROM_WORKSPACE(workspace, _view_layer) \
1988  (((workspace)->object_mode & OD_MODE_EDIT) ? OBACT(_view_layer) : NULL)
1989 #define OBEDIT_FROM_OBACT(ob) ((ob) ? (((ob)->mode & OB_MODE_EDIT) ? ob : NULL) : NULL)
1990 #define OBPOSE_FROM_OBACT(ob) ((ob) ? (((ob)->mode & OB_MODE_POSE) ? ob : NULL) : NULL)
1991 #define OBWEIGHTPAINT_FROM_OBACT(ob) \
1992  ((ob) ? (((ob)->mode & OB_MODE_WEIGHT_PAINT) ? ob : NULL) : NULL)
1993 #define OBEDIT_FROM_VIEW_LAYER(view_layer) OBEDIT_FROM_OBACT(OBACT(view_layer))
1994 
1995 #define V3D_CAMERA_LOCAL(v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : NULL)
1996 #define V3D_CAMERA_SCENE(scene, v3d) \
1997  ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : (scene)->camera)
1998 
1999 #define CFRA (scene->r.cfra)
2000 #define SUBFRA (scene->r.subframe)
2001 #define SFRA (scene->r.sfra)
2002 #define EFRA (scene->r.efra)
2003 #define PRVRANGEON (scene->r.flag & SCER_PRV_RANGE)
2004 #define PSFRA ((PRVRANGEON) ? (scene->r.psfra) : (scene->r.sfra))
2005 #define PEFRA ((PRVRANGEON) ? (scene->r.pefra) : (scene->r.efra))
2006 #define FRA2TIME(a) ((((double)scene->r.frs_sec_base) * (double)(a)) / (double)scene->r.frs_sec)
2007 #define TIME2FRA(a) ((((double)scene->r.frs_sec) * (double)(a)) / (double)scene->r.frs_sec_base)
2008 #define FPS (((double)scene->r.frs_sec) / (double)scene->r.frs_sec_base)
2009 
2010 /* Base.flag is in DNA_object_types.h */
2011 
2013 enum {
2017 };
2018 
2020 enum {
2022 };
2023 
2025 enum {
2028 };
2029 
2031 #define SCE_SNAP (1 << 0)
2032 #define SCE_SNAP_ROTATE (1 << 1)
2033 #define SCE_SNAP_PEEL_OBJECT (1 << 2)
2034 #define SCE_SNAP_PROJECT (1 << 3)
2035 #define SCE_SNAP_NO_SELF (1 << 4)
2036 #define SCE_SNAP_ABS_GRID (1 << 5)
2037 #define SCE_SNAP_BACKFACE_CULLING (1 << 6)
2038 
2040 #define SCE_SNAP_TARGET_CLOSEST 0
2041 #define SCE_SNAP_TARGET_CENTER 1
2042 #define SCE_SNAP_TARGET_MEDIAN 2
2043 #define SCE_SNAP_TARGET_ACTIVE 3
2044 
2046 #define SCE_SNAP_MODE_VERTEX (1 << 0)
2047 #define SCE_SNAP_MODE_EDGE (1 << 1)
2048 #define SCE_SNAP_MODE_FACE (1 << 2)
2049 #define SCE_SNAP_MODE_VOLUME (1 << 3)
2050 #define SCE_SNAP_MODE_INCREMENT (1 << 4)
2051 #define SCE_SNAP_MODE_EDGE_MIDPOINT (1 << 5)
2052 #define SCE_SNAP_MODE_EDGE_PERPENDICULAR (1 << 6)
2053 
2055 #define SCE_SNAP_MODE_NODE_X (1 << 5)
2056 #define SCE_SNAP_MODE_NODE_Y (1 << 6)
2057 
2059 #define SCE_SNAP_MODE_GRID (1 << 7)
2060 
2062 enum {
2066 };
2067 
2069 #define SCE_SELECT_VERTEX (1 << 0) /* for mesh */
2070 #define SCE_SELECT_EDGE (1 << 1)
2071 #define SCE_SELECT_FACE (1 << 2)
2072 
2074 #define SCE_STATVIS_OVERHANG 0
2075 #define SCE_STATVIS_THICKNESS 1
2076 #define SCE_STATVIS_INTERSECT 2
2077 #define SCE_STATVIS_DISTORT 3
2078 #define SCE_STATVIS_SHARP 4
2079 
2081 #define SCE_SELECT_PATH (1 << 0)
2082 #define SCE_SELECT_POINT (1 << 1)
2083 #define SCE_SELECT_END (1 << 2)
2084 
2086 #define PROP_SMOOTH 0
2087 #define PROP_SPHERE 1
2088 #define PROP_ROOT 2
2089 #define PROP_SHARP 3
2090 #define PROP_LIN 4
2091 #define PROP_CONST 5
2092 #define PROP_RANDOM 6
2093 #define PROP_INVSQUARE 7
2094 #define PROP_MODE_MAX 8
2095 
2097 enum {
2098  PROP_EDIT_USE = (1 << 0),
2101 };
2102 
2104 enum {
2108 };
2109 
2110 /* object_vgroup.c */
2112 typedef enum eVGroupSelect {
2119 
2120 #define WT_VGROUP_MASK_ALL \
2121  ((1 << WT_VGROUP_ACTIVE) | (1 << WT_VGROUP_BONE_SELECT) | (1 << WT_VGROUP_BONE_DEFORM) | \
2122  (1 << WT_VGROUP_BONE_DEFORM_OFF) | (1 << WT_VGROUP_ALL))
2123 
2125 #define SCE_DS_SELECTED (1 << 0)
2126 #define SCE_DS_COLLAPSED (1 << 1)
2127 #define SCE_NLA_EDIT_ON (1 << 2)
2128 #define SCE_FRAME_DROP (1 << 3)
2129 #define SCE_KEYS_NO_SELONLY (1 << 4)
2130 #define SCE_READFILE_LIBLINK_NEED_SETSCENE_CHECK (1 << 5)
2131 
2132 /* return flag BKE_scene_base_iter_next functions */
2133 /* #define F_ERROR -1 */ /* UNUSED */
2134 #define F_START 0
2135 #define F_SCENE 1
2136 #define F_DUPLI 3
2137 
2139 #define AUDIO_MUTE (1 << 0)
2140 #define AUDIO_SYNC (1 << 1)
2141 #define AUDIO_SCRUB (1 << 2)
2142 #define AUDIO_VOLUME_ANIMATED (1 << 3)
2143 
2145 enum {
2146 #ifdef DNA_DEPRECATED_ALLOW
2147  FFMPEG_MULTIPLEX_AUDIO = (1 << 0), /* deprecated, you can choose none as audiocodec now */
2148 #endif
2152 };
2153 
2155 typedef enum ePaintFlags {
2156  PAINT_SHOW_BRUSH = (1 << 0),
2162 
2167 typedef enum ePaintSymmetryFlags {
2168  PAINT_SYMM_X = (1 << 0),
2169  PAINT_SYMM_Y = (1 << 1),
2170  PAINT_SYMM_Z = (1 << 2),
2172  PAINT_TILE_X = (1 << 4),
2173  PAINT_TILE_Y = (1 << 5),
2174  PAINT_TILE_Z = (1 << 6),
2176 
2177 #define PAINT_SYMM_AXIS_ALL (PAINT_SYMM_X | PAINT_SYMM_Y | PAINT_SYMM_Z)
2178 
2183 typedef enum eSculptFlags {
2184  SCULPT_FLAG_UNUSED_0 = (1 << 0), /* cleared */
2185  SCULPT_FLAG_UNUSED_1 = (1 << 1), /* cleared */
2186  SCULPT_FLAG_UNUSED_2 = (1 << 2), /* cleared */
2187 
2188  SCULPT_LOCK_X = (1 << 3),
2189  SCULPT_LOCK_Y = (1 << 4),
2190  SCULPT_LOCK_Z = (1 << 5),
2191 
2192  SCULPT_FLAG_UNUSED_6 = (1 << 6), /* cleared */
2193 
2194  SCULPT_FLAG_UNUSED_7 = (1 << 7), /* cleared */
2196  // SCULPT_SHOW_DIFFUSE = (1 << 9), /* deprecated */
2197 
2198  /* If set, the mesh will be drawn with smooth-shading in
2199  * dynamic-topology mode */
2201 
2202  /* If set, dynamic-topology brushes will subdivide short edges */
2204  /* If set, dynamic-topology brushes will collapse short edges */
2206 
2207  /* If set, dynamic-topology detail size will be constant in object space */
2211 
2212  /* Don't display mask in viewport, but still use it for strokes. */
2213  SCULPT_HIDE_MASK = (1 << 15),
2214 
2215  /* Don't display face sets in viewport. */
2218 
2220 typedef enum eImagePaintMode {
2221  IMAGEPAINT_MODE_MATERIAL = 0, /* detect texture paint slots from the material */
2222  IMAGEPAINT_MODE_IMAGE = 1, /* select texture paint image directly */
2224 
2226 enum {
2229 };
2230 
2232 #define IMAGEPAINT_DRAWING (1 << 0)
2233 // #define IMAGEPAINT_DRAW_TOOL (1 << 1) /* deprecated */
2234 // #define IMAGEPAINT_DRAW_TOOL_DRAWING (1 << 2) /* deprecated */
2235 
2236 /* projection painting only */
2238 #define IMAGEPAINT_PROJECT_XRAY (1 << 4)
2239 #define IMAGEPAINT_PROJECT_BACKFACE (1 << 5)
2240 #define IMAGEPAINT_PROJECT_FLAT (1 << 6)
2241 #define IMAGEPAINT_PROJECT_LAYER_CLONE (1 << 7)
2242 #define IMAGEPAINT_PROJECT_LAYER_STENCIL (1 << 8)
2243 #define IMAGEPAINT_PROJECT_LAYER_STENCIL_INV (1 << 9)
2244 
2246 #define IMAGEPAINT_MISSING_UVS (1 << 0)
2247 #define IMAGEPAINT_MISSING_MATERIAL (1 << 1)
2248 #define IMAGEPAINT_MISSING_TEX (1 << 2)
2249 #define IMAGEPAINT_MISSING_STENCIL (1 << 3)
2250 
2252 #define UVCALC_FILLHOLES (1 << 0)
2254 #define UVCALC_NO_ASPECT_CORRECT (1 << 1)
2256 #define UVCALC_TRANSFORM_CORRECT_SLIDE (1 << 2)
2258 #define UVCALC_USESUBSURF (1 << 3)
2260 #define UVCALC_TRANSFORM_CORRECT (1 << 4)
2262 #define UVCALC_TRANSFORM_CORRECT_KEEP_CONNECTED (1 << 5)
2263 
2265 #define UV_SYNC_SELECTION 1
2266 #define UV_SHOW_SAME_IMAGE 2
2267 
2269 #define UV_SELECT_VERTEX 1
2270 #define UV_SELECT_EDGE 2
2271 #define UV_SELECT_FACE 4
2272 #define UV_SELECT_ISLAND 8
2273 
2275 typedef enum eGPencil_Flags {
2276  /* When creating new frames, the last frame gets used as the basis for the new one */
2278  /* Add the strokes below all strokes in the layer */
2280  /* Show compact list of colors */
2282  /* Generate wheight data for new strokes */
2284  /* Automerge with last stroke */
2287 
2290  /* Simplify */
2292  /* Simplify on play */
2294  /* Simplify fill on viewport */
2296  /* Simplify modifier on viewport */
2298  /* Simplify Shader FX */
2300  /* Simplify layer tint */
2302  /* Simplify Antialiasing */
2305 
2308  /* New strokes are added in viewport/data space (i.e. not screen space) */
2310 
2311  /* Viewport space, but relative to render canvas (Sequencer Preview Only) */
2312  /* GP_PROJECT_CANVAS = (1 << 1), */ /* UNUSED */
2313 
2314  /* Project into the screen's Z values */
2317 
2318  /* "Use Endpoints" */
2320  GP_PROJECT_CURSOR = (1 << 5),
2323 
2330 
2332 typedef enum eGPencil_GuideTypes {
2339 
2346 
2348 #define PE_KEEP_LENGTHS (1 << 0)
2349 #define PE_LOCK_FIRST (1 << 1)
2350 #define PE_DEFLECT_EMITTER (1 << 2)
2351 #define PE_INTERPOLATE_ADDED (1 << 3)
2352 #define PE_DRAW_PART (1 << 4)
2353 #define PE_UNUSED_6 (1 << 6) /* cleared */
2354 #define PE_FADE_TIME (1 << 7)
2355 #define PE_AUTO_VELOCITY (1 << 8)
2356 
2358 #define PE_BRUSH_NONE -1
2359 #define PE_BRUSH_COMB 0
2360 #define PE_BRUSH_CUT 1
2361 #define PE_BRUSH_LENGTH 2
2362 #define PE_BRUSH_PUFF 3
2363 #define PE_BRUSH_ADD 4
2364 #define PE_BRUSH_SMOOTH 5
2365 #define PE_BRUSH_WEIGHT 6
2366 
2368 #define PE_BRUSH_DATA_PUFF_VOLUME 1
2369 
2371 #define PE_TYPE_PARTICLES 0
2372 #define PE_TYPE_SOFTBODY 1
2373 #define PE_TYPE_CLOTH 2
2374 
2376 #define PHYS_GLOBAL_GRAVITY 1
2377 
2378 /* UnitSettings */
2379 
2380 #define USER_UNIT_ADAPTIVE 0xFF
2381 /* UnitSettings.system */
2382 #define USER_UNIT_NONE 0
2383 #define USER_UNIT_METRIC 1
2384 #define USER_UNIT_IMPERIAL 2
2385 /* UnitSettings.flag */
2386 #define USER_UNIT_OPT_SPLIT 1
2387 #define USER_UNIT_ROT_RADIANS 2
2388 
2390 enum {
2391  // SCE_EEVEE_VOLUMETRIC_ENABLED = (1 << 0), /* Unused */
2394  // SCE_EEVEE_VOLUMETRIC_COLORED = (1 << 3), /* Unused */
2398  // SCE_EEVEE_DOF_ENABLED = (1 << 7), /* Moved to camera->dof.flag */
2403  // SCE_EEVEE_SSS_ENABLED = (1 << 12), /* Unused */
2404  // SCE_EEVEE_SSS_SEPARATE_ALBEDO = (1 << 13), /* Unused */
2412  SCE_EEVEE_OVERSCAN = (1 << 21),
2415 };
2416 
2418 enum {
2420  /* SHADOW_VSM = 2, */ /* UNUSED */
2421  /* SHADOW_METHOD_MAX = 3, */ /* UNUSED */
2422 };
2423 
2425 enum {
2429 };
2430 
2432 enum {
2440 };
2441 
2442 #ifdef __cplusplus
2443 }
2444 #endif
ID and Library types, which are fundamental for sdna.
These structs are the foundation for all linked lists in the library system.
@ SCE_OBJECT_MODE_LOCK
struct SequencerToolSettings SequencerToolSettings
struct UnitSettings UnitSettings
struct ParticleBrushData ParticleBrushData
eGPencil_GuideTypes
@ GP_GUIDE_CIRCULAR
@ GP_GUIDE_ISO
@ GP_GUIDE_PARALLEL
@ GP_GUIDE_RADIAL
@ GP_GUIDE_GRID
@ R_ADDSKY
@ R_ALPHAPREMUL
struct SceneEEVEE SceneEEVEE
@ 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
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
const char * RE_engine_id_CYCLES
Definition: scene.c:1744
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
@ 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
@ CURVE_PAINT_PROJECT_CURSOR
@ CURVE_PAINT_PROJECT_SURFACE
eQualityOption
@ SCE_PERF_HQ_NORMALS
struct SceneDisplay SceneDisplay
@ AUTO_MERGE
@ AUTO_MERGE_AND_SPLIT
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
@ SCE_XFORM_SKIP_CHILDREN
@ SCE_XFORM_AXIS_ALIGN
@ SCE_XFORM_DATA_ORIGIN
eGP_Lockaxis_Types
@ GP_LOCKAXIS_X
@ GP_LOCKAXIS_VIEW
@ GP_LOCKAXIS_Y
@ GP_LOCKAXIS_Z
@ GP_LOCKAXIS_CURSOR
@ CURVE_PAINT_FLAG_DEPTH_STROKE_ENDPOINTS
@ CURVE_PAINT_FLAG_DEPTH_STROKE_OFFSET_ABS
@ CURVE_PAINT_FLAG_CORNERS_DETECT
@ CURVE_PAINT_FLAG_PRESSURE_RADIUS
struct Scene Scene
eFFMpegPreset
@ FFM_PRESET_GOOD
@ FFM_PRESET_REALTIME
@ FFM_PRESET_NONE
@ FFM_PRESET_BEST
struct ToolSettings ToolSettings
eGPencil_Selectmode_types
@ GP_SELECTMODE_POINT
@ GP_SELECTMODE_SEGMENT
@ GP_SELECTMODE_STROKE
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
@ VP_FLAG_VGROUP_RESTRICT
@ SCE_WORKSPACE_TOOL_DEFAULT
@ SCE_WORKSPACE_TOOL_FALLBACK
struct TimeMarker TimeMarker
@ FFMPEG_LOSSLESS_OUTPUT
@ FFMPEG_AUTOSPLIT_OUTPUT
@ FFMPEG_USE_MAX_B_FRAMES
ePaintFlags
@ PAINT_USE_CAVITY_MASK
@ PAINT_SCULPT_DELAY_UPDATES
@ PAINT_SHOW_BRUSH
@ PAINT_SHOW_BRUSH_ON_SURFACE
@ PAINT_FAST_NAVIGATE
@ CURVE_PAINT_SURFACE_PLANE_NORMAL_SURFACE
@ CURVE_PAINT_SURFACE_PLANE_VIEW
@ CURVE_PAINT_SURFACE_PLANE_NORMAL_VIEW
eImagePaintMode
@ IMAGEPAINT_MODE_IMAGE
@ IMAGEPAINT_MODE_MATERIAL
@ SHADOW_ESM
@ OB_DRAW_GROUPUSER_ACTIVE
@ OB_DRAW_GROUPUSER_NONE
@ OB_DRAW_GROUPUSER_ALL
eStereo3dFlag
@ S3D_SQUEEZED_FRAME
@ S3D_INTERLACE_SWAP
@ S3D_SIDEBYSIDE_CROSSEYED
@ R_COLOR_MANAGEMENT
@ R_COLOR_MANAGEMENT_UNUSED_1
struct BakeData BakeData
@ CURVE_PAINT_FIT_METHOD_REFIT
@ CURVE_PAINT_FIT_METHOD_SPLIT
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
@ SCE_EEVEE_MB_END
@ SCE_EEVEE_MB_START
@ SCE_EEVEE_MB_CENTER
const char * RE_engine_id_BLENDER_WORKBENCH
Definition: scene.c:1743
struct GP_Interpolate_Settings GP_Interpolate_Settings
@ SCE_VIEWS_FORMAT_STEREO_3D
@ SCE_VIEWS_FORMAT_MULTIVIEW
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
eGP_vertex_SelectMaskFlag
@ GP_VERTEX_MASK_SELECTMODE_SEGMENT
@ GP_VERTEX_MASK_SELECTMODE_STROKE
@ GP_VERTEX_MASK_SELECTMODE_POINT
@ SCE_ORIENT_DEFAULT
@ SCE_ORIENT_ROTATE
@ SCE_ORIENT_TRANSLATE
@ SCE_ORIENT_SCALE
struct UnifiedPaintSettings UnifiedPaintSettings
eStereo3dInterlaceType
@ S3D_INTERLACE_ROW
@ S3D_INTERLACE_COLUMN
@ S3D_INTERLACE_CHECKERBOARD
@ PROP_EDIT_PROJECTED
@ PROP_EDIT_USE
@ PROP_EDIT_CONNECTED
struct UvSculpt UvSculpt
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
@ GPPAINT_FLAG_USE_VERTEXCOLOR
@ GPPAINT_FLAG_USE_MATERIAL
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
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.c:1742
struct PhysicsSettings PhysicsSettings
struct VPaint VPaint
enum eGP_vertex_SelectMaskFlag eGP_Vertex_SelectMaskFlag
@ R_IMF_VIEWS_MULTIVIEW
@ R_IMF_VIEWS_STEREO_3D
@ R_IMF_VIEWS_INDIVIDUAL
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
struct CurvePaintSettings CurvePaintSettings
eFFMpegAudioChannels
@ FFM_CHANNELS_SURROUND4
@ FFM_CHANNELS_STEREO
@ FFM_CHANNELS_SURROUND51
@ FFM_CHANNELS_SURROUND71
@ FFM_CHANNELS_MONO
@ 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
eStereoViews
@ STEREO_MONO_ID
@ STEREO_LEFT_ID
@ STEREO_RIGHT_ID
@ STEREO_3D_ID
@ SCE_SNAP_TRANSFORM_MODE_SCALE
@ SCE_SNAP_TRANSFORM_MODE_ROTATE
@ SCE_SNAP_TRANSFORM_MODE_TRANSLATE
eSeqImageFitMethod
@ SEQ_SCALE_TO_FILL
@ SEQ_STRETCH_TO_FILL
@ SEQ_USE_ORIGINAL_SIZE
@ SEQ_SCALE_TO_FIT
struct RenderProfile RenderProfile
struct GpWeightPaint GpWeightPaint
struct FFMpegCodecData FFMpegCodecData
eBakeSaveMode
@ R_BAKE_SAVE_EXTERNAL
@ R_BAKE_SAVE_INTERNAL
@ 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 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_AO
@ R_BAKE_PASS_FILTER_DIRECT
@ 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_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_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_UNUSED_4
@ SCE_PASS_SHADOW
@ SCE_PASS_TRANSM_COLOR
@ SCE_PASS_UNUSED_2
@ SCE_PASS_MIST
@ SCE_PASS_EMIT
@ SCE_PASS_ENVIRONMENT
@ SCE_PASS_RAYHITS
struct ParticleEditSettings ParticleEditSettings
struct AudioData AudioData
eVGroupSelect
@ WT_VGROUP_BONE_SELECT
@ WT_VGROUP_ALL
@ WT_VGROUP_BONE_DEFORM_OFF
@ WT_VGROUP_ACTIVE
@ WT_VGROUP_BONE_DEFORM
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 normal_swizzle[3]
struct Object * cage_object
float max_ray_distance
float cage_extrusion
char filepath[1024]
struct ImageFormatData im_format
char _pad[6]
IDProperty * properties
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:273
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
int preview_start_resolution
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
short debug_pass_type
char pic[1024]
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 views_format
char use_lock_interface
float unit_line_thickness
float bake_user_scale
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 symmetrize_direction
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
GpPaint * gp_paint
struct SequencerToolSettings * sequencer_tool_settings
GpSculptPaint * gp_sculptpaint
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]
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]