[Bf-blender-cvs] [9a076dd95a0] master: DNA: defaults for ID types

Campbell Barton noreply at git.blender.org
Wed Sep 11 20:58:42 CEST 2019


Commit: 9a076dd95a01135ea50f9ccc675668db9f2155f4
Author: Campbell Barton
Date:   Thu Sep 12 04:34:55 2019 +1000
Branches: master
https://developer.blender.org/rB9a076dd95a01135ea50f9ccc675668db9f2155f4

DNA: defaults for ID types

===================================================================

M	source/blender/blenkernel/BKE_curve.h
M	source/blender/blenkernel/intern/brush.c
M	source/blender/blenkernel/intern/camera.c
M	source/blender/blenkernel/intern/curve.c
M	source/blender/blenkernel/intern/image.c
M	source/blender/blenkernel/intern/lattice.c
M	source/blender/blenkernel/intern/library.c
M	source/blender/blenkernel/intern/light.c
M	source/blender/blenkernel/intern/lightprobe.c
M	source/blender/blenkernel/intern/linestyle.c
M	source/blender/blenkernel/intern/mball.c
M	source/blender/blenkernel/intern/speaker.c
M	source/blender/blenkernel/intern/texture.c
M	source/blender/blenkernel/intern/world.c
A	source/blender/makesdna/DNA_brush_defaults.h
A	source/blender/makesdna/DNA_cachefile_defaults.h
A	source/blender/makesdna/DNA_camera_defaults.h
A	source/blender/makesdna/DNA_curve_defaults.h
A	source/blender/makesdna/DNA_image_defaults.h
A	source/blender/makesdna/DNA_lattice_defaults.h
A	source/blender/makesdna/DNA_light_defaults.h
A	source/blender/makesdna/DNA_lightprobe_defaults.h
A	source/blender/makesdna/DNA_linestyle_defaults.h
A	source/blender/makesdna/DNA_meta_defaults.h
A	source/blender/makesdna/DNA_speaker_defaults.h
A	source/blender/makesdna/DNA_texture_defaults.h
A	source/blender/makesdna/DNA_world_defaults.h
M	source/blender/makesdna/intern/CMakeLists.txt
M	source/blender/makesdna/intern/dna_defaults.c
M	source/blender/makesrna/intern/rna_define.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h
index be49ca150b2..aeff6007292 100644
--- a/source/blender/blenkernel/BKE_curve.h
+++ b/source/blender/blenkernel/BKE_curve.h
@@ -72,7 +72,7 @@ typedef struct CVKeyIndex {
 /* ** Curve ** */
 void BKE_curve_free(struct Curve *cu);
 void BKE_curve_editfont_free(struct Curve *cu);
-void BKE_curve_init(struct Curve *cu);
+void BKE_curve_init(struct Curve *cu, const short curve_type);
 struct Curve *BKE_curve_add(struct Main *bmain, const char *name, int type);
 void BKE_curve_copy_data(struct Main *bmain,
                          struct Curve *cu_dst,
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index bdc836225c9..29c4ae624e9 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -24,6 +24,7 @@
 #include "DNA_scene_types.h"
 #include "DNA_object_types.h"
 #include "DNA_gpencil_types.h"
+#include "DNA_defaults.h"
 
 #include "BLI_math.h"
 #include "BLI_rand.h"
@@ -60,74 +61,48 @@ void BKE_brush_system_exit(void)
 
 static void brush_defaults(Brush *brush)
 {
-  brush->blend = 0;
-  brush->flag = 0;
-
-  brush->ob_mode = OB_MODE_ALL_PAINT;
-
-  /* BRUSH SCULPT TOOL SETTINGS */
-  brush->weight = 1.0f; /* weight of brush 0 - 1.0 */
-  brush->size = 35;     /* radius of the brush in pixels */
-  brush->alpha = 0.5f;  /* brush strength/intensity probably variable should be renamed? */
-  brush->autosmooth_factor = 0.0f;
-  brush->topology_rake_factor = 0.0f;
-  brush->crease_pinch_factor = 0.5f;
-  brush->normal_radius_factor = 0.5f;
-  brush->sculpt_plane = SCULPT_DISP_DIR_AREA;
-  /* How far above or below the plane that is found by averaging the faces. */
-  brush->plane_offset = 0.0f;
-  brush->plane_trim = 0.5f;
-  brush->clone.alpha = 0.5f;
-  brush->normal_weight = 0.0f;
-  brush->fill_threshold = 0.2f;
-  brush->flag |= BRUSH_ALPHA_PRESSURE;
-
-  /* BRUSH PAINT TOOL SETTINGS */
-  /* Default rgb color of the brush when painting - white. */
-  brush->rgb[0] = 1.0f;
-  brush->rgb[1] = 1.0f;
-  brush->rgb[2] = 1.0f;
-
-  zero_v3(brush->secondary_rgb);
-
-  /* BRUSH STROKE SETTINGS */
-  brush->flag |= (BRUSH_SPACE | BRUSH_SPACE_ATTEN);
-  /* How far each brush dot should be spaced as a percentage of brush diameter. */
-  brush->spacing = 10;
-
-  brush->smooth_stroke_radius = 75;
-  brush->smooth_stroke_factor = 0.9f;
-
-  /* Time delay between dots of paint or sculpting when doing airbrush mode. */
-  brush->rate = 0.1f;
-
-  brush->jitter = 0.0f;
-
-  /* BRUSH TEXTURE SETTINGS */
-  BKE_texture_mtex_default(&brush->mtex);
-  BKE_texture_mtex_default(&brush->mask_mtex);
-
-  brush->texture_sample_bias = 0; /* value to added to texture samples */
-  brush->texture_overlay_alpha = 33;
-  brush->mask_overlay_alpha = 33;
-  brush->cursor_overlay_alpha = 33;
-  brush->overlay_flags = 0;
-
-  /* brush appearance  */
-
-  brush->add_col[0] = 1.00; /* add mode color is light red */
-  brush->add_col[1] = 0.39;
-  brush->add_col[2] = 0.39;
-
-  brush->sub_col[0] = 0.39; /* subtract mode color is light blue */
-  brush->sub_col[1] = 0.39;
-  brush->sub_col[2] = 1.00;
-
-  brush->stencil_pos[0] = 256;
-  brush->stencil_pos[1] = 256;
-
-  brush->stencil_dimension[0] = 256;
-  brush->stencil_dimension[1] = 256;
+
+  const Brush *brush_def = DNA_struct_default_get(Brush);
+
+#define FROM_DEFAULT(member) memcpy(&brush->member, &brush_def->member, sizeof(brush->member))
+#define FROM_DEFAULT_PTR(member) memcpy(brush->member, brush_def->member, sizeof(brush->member))
+
+  FROM_DEFAULT(blend);
+  FROM_DEFAULT(flag);
+  FROM_DEFAULT(weight);
+  FROM_DEFAULT(size);
+  FROM_DEFAULT(alpha);
+  FROM_DEFAULT(autosmooth_factor);
+  FROM_DEFAULT(topology_rake_factor);
+  FROM_DEFAULT(crease_pinch_factor);
+  FROM_DEFAULT(normal_radius_factor);
+  FROM_DEFAULT(sculpt_plane);
+  FROM_DEFAULT(plane_offset);
+  FROM_DEFAULT(clone.alpha);
+  FROM_DEFAULT(normal_weight);
+  FROM_DEFAULT(fill_threshold);
+  FROM_DEFAULT(flag);
+  FROM_DEFAULT_PTR(rgb);
+  FROM_DEFAULT_PTR(secondary_rgb);
+  FROM_DEFAULT(spacing);
+  FROM_DEFAULT(smooth_stroke_radius);
+  FROM_DEFAULT(smooth_stroke_factor);
+  FROM_DEFAULT(rate);
+  FROM_DEFAULT(jitter);
+  FROM_DEFAULT(texture_sample_bias);
+  FROM_DEFAULT(texture_overlay_alpha);
+  FROM_DEFAULT(mask_overlay_alpha);
+  FROM_DEFAULT(cursor_overlay_alpha);
+  FROM_DEFAULT(overlay_flags);
+  FROM_DEFAULT_PTR(add_col);
+  FROM_DEFAULT_PTR(sub_col);
+  FROM_DEFAULT(stencil_pos);
+  FROM_DEFAULT(stencil_dimension);
+  FROM_DEFAULT(mtex);
+  FROM_DEFAULT(mask_mtex);
+
+#undef FROM_DEFAULT
+#undef FROM_DEFAULT_PTR
 }
 
 /* Datablock add/copy/free/make_local */
@@ -136,16 +111,11 @@ void BKE_brush_init(Brush *brush)
 {
   BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(brush, id));
 
+  MEMCPY_STRUCT_AFTER(brush, DNA_struct_default_get(Brush), id);
+
   /* enable fake user by default */
   id_fake_user_set(&brush->id);
 
-  brush_defaults(brush);
-
-  brush->sculpt_tool = SCULPT_TOOL_DRAW; /* sculpting defaults to the draw tool for new brushes */
-
-  /* A kernel radius of 1 has almost no effect (T63233). */
-  brush->blur_kernel_radius = 2;
-
   /* the default alpha falloff curve */
   BKE_brush_curve_preset(brush, CURVE_PRESET_SMOOTH);
 }
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index a563a8d581c..f70c5bb99d6 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -30,6 +30,7 @@
 #include "DNA_scene_types.h"
 #include "DNA_view3d_types.h"
 #include "DNA_ID.h"
+#include "DNA_defaults.h"
 
 #include "BLI_math.h"
 #include "BLI_listbase.h"
@@ -56,25 +57,7 @@ void BKE_camera_init(Camera *cam)
 {
   BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cam, id));
 
-  cam->lens = 50.0f;
-  cam->sensor_x = DEFAULT_SENSOR_WIDTH;
-  cam->sensor_y = DEFAULT_SENSOR_HEIGHT;
-  cam->clip_start = 0.1f;
-  cam->clip_end = 1000.0f;
-  cam->drawsize = 1.0f;
-  cam->ortho_scale = 6.0;
-  cam->flag |= CAM_SHOWPASSEPARTOUT;
-  cam->passepartalpha = 0.5f;
-
-  cam->dof.aperture_fstop = 2.8f;
-  cam->dof.aperture_ratio = 1.0f;
-  cam->dof.focus_distance = 10.0f;
-
-  /* stereoscopy 3d */
-  cam->stereo.interocular_distance = 0.065f;
-  cam->stereo.convergence_distance = 30.f * 0.065f;
-  cam->stereo.pole_merge_angle_from = DEG2RADF(60.0f);
-  cam->stereo.pole_merge_angle_to = DEG2RADF(75.0f);
+  MEMCPY_STRUCT_AFTER(cam, DNA_struct_default_get(Camera), id);
 }
 
 void *BKE_camera_add(Main *bmain, const char *name)
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 861663fdd6b..5f9a726d34a 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -36,6 +36,7 @@
 #include "DNA_anim_types.h"
 #include "DNA_curve_types.h"
 #include "DNA_material_types.h"
+#include "DNA_defaults.h"
 
 /* for dereferencing pointers */
 #include "DNA_key_types.h"
@@ -145,28 +146,13 @@ void BKE_curve_free(Curve *cu)
   MEM_SAFE_FREE(cu->tb);
 }
 
-void BKE_curve_init(Curve *cu)
-{
-  /* BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cu, id)); */ /* cu->type is already initialized... */
-
-  copy_v3_fl(cu->size, 1.0f);
-  cu->flag = CU_DEFORM_BOUNDS_OFF | CU_PATH_RADIUS;
-  cu->pathlen = 100;
-  cu->resolu = cu->resolv = (cu->type == OB_SURF) ? 4 : 12;
-  cu->width = 1.0;
-  cu->wordspace = 1.0;
-  cu->spacing = cu->linedist = 1.0;
-  cu->fsize = 1.0;
-  cu->ulheight = 0.05;
-  cu->texflag = CU_AUTOSPACE;
-  cu->smallcaps_scale = 0.75f;
-  /* XXX: this one seems to be the best one in most cases, at least for curve deform... */
-  cu->twist_mode = CU_TWIST_MINIMUM;
-  cu->bevfac1 = 0.0f;
-  cu->bevfac2 = 1.0f;
-  cu->bevfac1_mapping = CU_BEVFAC_MAP_RESOLU;
-  cu->bevfac2_mapping = CU_BEVFAC_MAP_RESOLU;
-  cu->bevresol = 4;
+void BKE_curve_init(Curve *cu, const short curve_type)
+{
+  BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cu, id));
+
+  MEMCPY_STRUCT_AFTER(cu, DNA_struct_default_get(Curve), id);
+
+  cu->type = curve_type;
 
   cu->bb = BKE_boundbox_alloc_unit();
 
@@ -182,6 +168,9 @@ void BKE_curve_init(Curve *cu)
     cu->tb = MEM_calloc_arrayN(MAXTEXTBOX, sizeof(TextBox), "textbox");
     cu->tb[0].w = cu->tb[0].h = 0.0;
   }
+  else if (cu->type == OB_SURF) {
+    cu->resolv = 4;
+  }
 }
 
 Curve *BKE_curve_add(Main *bmain, const char *name, int type)
@@ -189,9 +178,8 @@ Curve *BKE_curve_add(Main *bmain, const char *name, int type)
   Curve *cu;
 
   cu = BKE_libblock_alloc(bmain, ID_CU, name, 0);
-  cu->type = type;
 
-  BKE_curve_init(cu);
+  BKE_curve_init(cu, type);
 
   return cu;
 }
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 523c0199daa..3718e35176f 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -57,6 +57,7 @@
 #include "DNA_meshdata_types.h"
 #include "DNA_light_types.h"
 #include "DNA_world_types.h"
+#include "DNA_defaults.h"
 
 #include "BLI_blenlib.h"
 #include "BLI_math_vector.h"
@@ -298,10 +299,7 @@ static void image_init(Image *ima, short source, short type)
 
   ima->ok = IMA_OK;
 
-  ima->aspx = ima->aspy = 1.0;
-  ima->gen_x = 1024;
-  ima->gen_y = 1024;
-  ima->gen_type = IMA_GENTYPE_GRID;
+  MEMCPY_STRUCT_AFTER(ima, DNA_struct_default_get(Image), id);
 
   ima->source = source;
   ima->type = type;
@@ -318,8 +316,6 @@ static void image_init(Image *ima, short source, short type)
 
   BKE_color_managed_colorspace_settings_init(&ima->colorspace_settings);
   ima->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Image Stereo Format");
-
-  ima->gpuframenr = INT_MAX;
 }
 
 void BKE_image_init(struct Image *image)
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index e46b7ca5130..72b531c446a 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -41,6 +41,7 @@
 #include "DNA_lattice_types.h"
 #include "DNA_curve_types.h"
 #include "DNA_key_types.h"
+#include "DNA_defaults.h"
 
 #include "BKE_animsys.h"
 #include "BKE_anim.h"
@@ -248,13 +249,10 @@ void BKE_lattice_init(Lattice *lt)
 {
   BLI_assert(ME

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list