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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-09-09 15:32:34 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-09-09 16:17:03 +0300
commitf5e0dfe59c7e748907f955f848264751ed0967f0 (patch)
treea4bf4369b1076ffd7f449061f04d2813ce715a15 /source/blender/makesdna/DNA_scene_defaults.h
parente164afe9b5f98fe1ddb2ce063e1df9e9926cacfd (diff)
DNA: initial DNA defaults support
This provides an API to access structs with their members set to default values: - DNA_struct_default_get(name) - DNA_struct_default_alloc(name) Currently this is only used for scene & view shading initialization, eventually it can be used for RNA defaults and initializing DNA struct members on file reading.
Diffstat (limited to 'source/blender/makesdna/DNA_scene_defaults.h')
-rw-r--r--source/blender/makesdna/DNA_scene_defaults.h365
1 files changed, 365 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_scene_defaults.h b/source/blender/makesdna/DNA_scene_defaults.h
new file mode 100644
index 00000000000..c2ec290252f
--- /dev/null
+++ b/source/blender/makesdna/DNA_scene_defaults.h
@@ -0,0 +1,365 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/** \file
+ * \ingroup DNA
+ */
+
+#ifndef __DNA_SCENE_DEFAULTS_H__
+#define __DNA_SCENE_DEFAULTS_H__
+
+#include "DNA_view3d_defaults.h"
+
+/* Struct members on own line. */
+/* clang-format off */
+
+/* -------------------------------------------------------------------- */
+/** \name Scene Struct
+ * \{ */
+
+#define _DNA_DEFAULT_ImageFormatData \
+ { \
+ .planes = R_IMF_PLANES_RGBA, \
+ .imtype = R_IMF_IMTYPE_PNG, \
+ .depth = R_IMF_CHAN_DEPTH_8, \
+ .quality = 90, \
+ .compress = 15, \
+ }
+
+#define _DNA_DEFAULT_BakeData \
+ { \
+ .flag = R_BAKE_CLEAR, \
+ .pass_filter = R_BAKE_PASS_FILTER_ALL, \
+ .width = 512, \
+ .height = 512, \
+ .margin = 16, \
+ .normal_space = R_BAKE_SPACE_TANGENT, \
+ .normal_swizzle = {R_BAKE_POSX, R_BAKE_POSY, R_BAKE_POSZ}, \
+ \
+ .im_format = _DNA_DEFAULT_ImageFormatData, \
+ }
+
+#define _DNA_DEFAULT_FFMpegCodecData \
+ { \
+ .audio_mixrate = 48000, \
+ .audio_volume = 1.0f, \
+ .audio_bitrate = 192, \
+ .audio_channels = 2, \
+ }
+
+#define _DNA_DEFAULT_DisplaySafeAreas \
+ { \
+ .title = {10.0f / 100.0f, 5.0f / 100.0f}, \
+ .action = {3.5f / 100.0f, 3.5f / 100.0f}, \
+ .title_center = {17.5f / 100.0f, 5.0f / 100.0f}, \
+ .action_center = {15.0f / 100.0f, 5.0f / 100.0f}, \
+ }
+
+#define _DNA_DEFAULT_RenderData \
+ { \
+ .mode = 0, \
+ .cfra = 1, \
+ .sfra = 1, \
+ .efra = 250, \
+ .frame_step = 1, \
+ .xsch = 1920, \
+ .ysch = 1080, \
+ .xasp = 1, \
+ .yasp = 1, \
+ .tilex = 256, \
+ .tiley = 256, \
+ .size = 100, \
+ \
+ .im_format = _DNA_DEFAULT_ImageFormatData, \
+ \
+ .displaymode = R_OUTPUT_WINDOW, \
+ .framapto = 100, \
+ .images = 100, \
+ .framelen = 1.0, \
+ .blurfac = 0.5, \
+ .frs_sec = 24, \
+ .frs_sec_base = 1, \
+ \
+ /* OCIO_TODO: for forwards compatibility only, so if no tonecurve are used, \
+ * images would look in the same way as in current blender \
+ * \
+ * perhaps at some point should be completely deprecated? \
+ */ \
+ .color_mgt_flag = R_COLOR_MANAGEMENT, \
+ \
+ .gauss = 1.5, \
+ .dither_intensity = 1.0f, \
+ \
+ .bake_mode = 0, \
+ .bake_filter = 16, \
+ .bake_flag = R_BAKE_CLEAR, \
+ .bake_samples = 256, \
+ .bake_biasdist = 0.001f, \
+ \
+ /* BakeData */ \
+ .bake = _DNA_DEFAULT_BakeData, \
+ \
+ .scemode = R_DOCOMP | R_DOSEQ | R_EXTENSION, \
+ .stamp = R_STAMP_TIME | R_STAMP_FRAME | R_STAMP_DATE | R_STAMP_CAMERA | R_STAMP_SCENE | \
+ R_STAMP_FILENAME | R_STAMP_RENDERTIME | R_STAMP_MEMORY, \
+ .stamp_font_id = 12, \
+ .fg_stamp = {0.8f, 0.8f, 0.8f, 1.0f}, \
+ .bg_stamp = {0.0f, 0.0f, 0.0f, 0.25f}, \
+ \
+ .seq_prev_type = OB_SOLID, \
+ .seq_rend_type = OB_SOLID, \
+ .seq_flag = 0, \
+ \
+ .threads = 1, \
+ \
+ .simplify_subsurf = 6, \
+ .simplify_particles = 1.0f, \
+ \
+ .border.xmin = 0.0f, \
+ .border.ymin = 0.0f, \
+ .border.xmax = 1.0f, \
+ .border.ymax = 1.0f, \
+ \
+ .preview_start_resolution = 64, \
+ \
+ .line_thickness_mode = R_LINE_THICKNESS_ABSOLUTE, \
+ .unit_line_thickness = 1.0f, \
+ \
+ .ffcodecdata = _DNA_DEFAULT_FFMpegCodecData, \
+ }
+
+#define _DNA_DEFAULT_AudioData \
+ { \
+ .distance_model = 2.0f, \
+ .doppler_factor = 1.0f, \
+ .speed_of_sound = 343.3f, \
+ .volume = 1.0f, \
+ .flag = AUDIO_SYNC, \
+ }
+
+#define _DNA_DEFAULT_SceneDisplay \
+ { \
+ .light_direction = {M_SQRT1_3, M_SQRT1_3, M_SQRT1_3}, \
+ .shadow_shift = 0.1f, \
+ .shadow_focus = 0.0f, \
+ \
+ .matcap_ssao_distance = 0.2f, \
+ .matcap_ssao_attenuation = 1.0f, \
+ .matcap_ssao_samples = 16, \
+ \
+ .shading = _DNA_DEFAULT_View3DShading, \
+ \
+ .render_aa = SCE_DISPLAY_AA_SAMPLES_8, \
+ .viewport_aa = SCE_DISPLAY_AA_FXAA, \
+ }
+
+#define _DNA_DEFAULT_PhysicsSettings \
+ { \
+ .gravity = {0.0f, 0.0f -9.81f}, \
+ .flag = PHYS_GLOBAL_GRAVITY, \
+ }
+
+#define _DNA_DEFAULT_SceneEEVEE \
+ { \
+ .gi_diffuse_bounces = 3, \
+ .gi_cubemap_resolution = 512, \
+ .gi_visibility_resolution = 32, \
+ .gi_cubemap_draw_size = 0.3f, \
+ .gi_irradiance_draw_size = 0.1f, \
+ .gi_irradiance_smoothing = 0.1f, \
+ .gi_filter_quality = 3.0f, \
+ \
+ .taa_samples = 16, \
+ .taa_render_samples = 64, \
+ \
+ .sss_samples = 7, \
+ .sss_jitter_threshold = 0.3f, \
+ \
+ .ssr_quality = 0.25f, \
+ .ssr_max_roughness = 0.5f, \
+ .ssr_thickness = 0.2f, \
+ .ssr_border_fade = 0.075f, \
+ .ssr_firefly_fac = 10.0f, \
+ \
+ .volumetric_start = 0.1f, \
+ .volumetric_end = 100.0f, \
+ .volumetric_tile_size = 8, \
+ .volumetric_samples = 64, \
+ .volumetric_sample_distribution = 0.8f, \
+ .volumetric_light_clamp = 0.0f, \
+ .volumetric_shadow_samples = 16, \
+ \
+ .gtao_distance = 0.2f, \
+ .gtao_factor = 1.0f, \
+ .gtao_quality = 0.25f, \
+ \
+ .bokeh_max_size = 100.0f, \
+ .bokeh_threshold = 1.0f, \
+ \
+ .bloom_color = {1.0f, 1.0f, 1.0f}, \
+ .bloom_threshold = 0.8f, \
+ .bloom_knee = 0.5f, \
+ .bloom_intensity = 0.05f, \
+ .bloom_radius = 6.5f, \
+ .bloom_clamp = 0.0f, \
+ \
+ .motion_blur_samples = 8, \
+ .motion_blur_shutter = 0.5f, \
+ \
+ .shadow_cube_size = 512, \
+ .shadow_cascade_size = 1024, \
+ \
+ .light_cache = NULL, \
+ .light_threshold = 0.01f, \
+ \
+ .overscan = 3.0f, \
+ \
+ .flag = SCE_EEVEE_VOLUMETRIC_LIGHTS | SCE_EEVEE_GTAO_BENT_NORMALS | \
+ SCE_EEVEE_GTAO_BOUNCE | SCE_EEVEE_TAA_REPROJECTION | \
+ SCE_EEVEE_SSR_HALF_RESOLUTION | SCE_EEVEE_SHADOW_SOFT, \
+ }
+
+#define _DNA_DEFAULT_Scene \
+ { \
+ .cursor = _DNA_DEFAULT_View3DCursor, \
+ .r = _DNA_DEFAULT_RenderData, \
+ .audio = _DNA_DEFAULT_AudioData, \
+ \
+ .display = _DNA_DEFAULT_SceneDisplay, \
+ \
+ .physics_settings = _DNA_DEFAULT_PhysicsSettings, \
+ \
+ .safe_areas = _DNA_DEFAULT_DisplaySafeAreas, \
+ \
+ .eevee = _DNA_DEFAULT_SceneEEVEE, \
+ }
+
+/** \} */
+
+/* -------------------------------------------------------------------- */
+/** \name ToolSettings Struct
+ * \{ */
+
+#define _DNA_DEFAULTS_CurvePaintSettings \
+ { \
+ .curve_type = CU_BEZIER, \
+ .flag = CURVE_PAINT_FLAG_CORNERS_DETECT, \
+ .error_threshold = 8, \
+ .radius_max = 1.0f, \
+ .corner_angle = DEG2RADF(70.0f), \
+ }
+
+#define _DNA_DEFAULTS_ImagePaintSettings \
+ { \
+ .paint.flags = PAINT_SHOW_BRUSH, \
+ .normal_angle = 80, \
+ .seam_bleed = 2, \
+ }
+
+#define _DNA_DEFAULTS_ParticleBrushData \
+ { \
+ .strength = 0.5f, \
+ .size = 50, \
+ .step = 10, \
+ .count = 10, \
+ }
+
+#define _DNA_DEFAULTS_ParticleEditSettings \
+ { \
+ .flag = PE_KEEP_LENGTHS | PE_LOCK_FIRST | PE_DEFLECT_EMITTER | PE_AUTO_VELOCITY, \
+ .emitterdist = 0.25f, \
+ .totrekey = 5, \
+ .totaddkey = 5, \
+ .brushtype = PE_BRUSH_COMB, \
+ \
+ /* Scene init copies this to all other elements. */ \
+ .brush = {_DNA_DEFAULTS_ParticleBrushData}, \
+ \
+ .draw_step = 2, \
+ .fade_frames = 2, \
+ .selectmode = SCE_SELECT_PATH, \
+ }
+
+#define _DNA_DEFAULTS_GP_Sculpt_Guide \
+ { \
+ .spacing = 20.0f, \
+ }
+
+#define _DNA_DEFAULTS_GP_Sculpt_Settings \
+ { \
+ .guide = _DNA_DEFAULTS_GP_Sculpt_Guide, \
+ }
+
+#define _DNA_DEFAULTS_MeshStatVis \
+ { \
+ .overhang_axis = OB_NEGZ, \
+ .overhang_min = 0, \
+ .overhang_max = DEG2RADF(45.0f), \
+ .thickness_max = 0.1f, \
+ .thickness_samples = 1, \
+ .distort_min = DEG2RADF(5.0f), \
+ .distort_max = DEG2RADF(45.0f), \
+ \
+ .sharp_min = DEG2RADF(90.0f), \
+ .sharp_max = DEG2RADF(180.0f), \
+ }
+
+#define _DNA_DEFAULT_ToolSettings \
+ { \
+ .object_flag = SCE_OBJECT_MODE_LOCK, \
+ .doublimit = 0.001, \
+ .vgroup_weight = 1.0f, \
+ .uvcalc_margin = 0.001f, \
+ .uvcalc_flag = UVCALC_TRANSFORM_CORRECT, \
+ .unwrapper = 1, \
+ .select_thresh = 0.01f, \
+ \
+ .selectmode = SCE_SELECT_VERTEX, \
+ .uv_selectmode = UV_SELECT_VERTEX, \
+ .autokey_mode = AUTOKEY_MODE_NORMAL, \
+ \
+ .transform_pivot_point = V3D_AROUND_CENTER_MEDIAN, \
+ .snap_mode = SCE_SNAP_MODE_INCREMENT, \
+ .snap_node_mode = SCE_SNAP_MODE_GRID, \
+ .snap_uv_mode = SCE_SNAP_MODE_INCREMENT, \
+ .snap_transform_mode_flag = SCE_SNAP_TRANSFORM_MODE_TRANSLATE, \
+ \
+ .curve_paint_settings = _DNA_DEFAULTS_CurvePaintSettings, \
+ \
+ .statvis = _DNA_DEFAULTS_MeshStatVis, \
+ \
+ .proportional_size = 1.0f, \
+ \
+ .imapaint = _DNA_DEFAULTS_ImagePaintSettings, \
+ \
+ .particle = _DNA_DEFAULTS_ParticleEditSettings, \
+ \
+ .gp_sculpt = _DNA_DEFAULTS_GP_Sculpt_Settings, \
+ \
+ /* Annotations */ \
+ .annotate_v3d_align = GP_PROJECT_VIEWSPACE | GP_PROJECT_CURSOR, \
+ .annotate_thickness = 3, \
+ \
+ /* GP Stroke Placement */ \
+ .gpencil_v3d_align = GP_PROJECT_VIEWSPACE, \
+ .gpencil_v2d_align = GP_PROJECT_VIEWSPACE, \
+ .gpencil_seq_align = GP_PROJECT_VIEWSPACE, \
+ .gpencil_ima_align = GP_PROJECT_VIEWSPACE, \
+ }
+
+/* clang-format off */
+
+#endif /* __DNA_SCENE_DEFAULTS_H__ */