16#define DNA_DEPRECATED_ALLOW
73#define U (*((const UserDef *)&U))
85 const char *workspace_name)
93 region->v2d.flag &= ~V2D_IS_INIT;
130 if (
STREQ(workspace_name,
"UV Editing")) {
154 region->flag &= ~RGN_FLAG_HIDDEN;
188 View3D *v3d =
static_cast<View3D *
>(area->spacedata.first);
212 constexpr float viewports_to_level[][4] = {
214 {0x1.6e7cb8p-1, -0x1.c1747p-2, -0x1.2997dap-2, -0x1.d5d806p-2},
216 {0x1.6e7cb8p-1, -0x1.c17478p-2, -0x1.2997dcp-2, -0x1.d5d80cp-2},
218 {0x1.6e7cb6p-1, -0x1.c17476p-2, -0x1.2997dep-2, -0x1.d5d80cp-2},
221 constexpr float viewports_to_clear_ofs[][4] = {
223 {0x1.6e7cb6p-1, -0x1.c17476p-2, -0x1.2997dep-2, -0x1.d5d80cp-2},
225 {0x1.885b28p-1, -0x1.2d10cp-1, -0x1.42ae54p-3, -0x1.a486a2p-3},
228 constexpr float unified_viewquat[4] = {
229 0x1.6cbc88p-1, -0x1.c3a5c8p-2, -0x1.26413ep-2, -0x1.db430ap-2};
235 for (
int i = 0; i <
ARRAY_SIZE(viewports_to_clear_ofs); i++) {
241 for (
int i = 0; i <
ARRAY_SIZE(viewports_to_level); i++) {
258 const bool hide_image_tool_header =
STREQ(workspace_name,
"Rendering");
267 if (((sl->spacetype ==
SPACE_IMAGE) && hide_image_tool_header) ||
289 View3D *v3d =
static_cast<View3D *
>(area->spacedata.first);
302 if (layout->screen) {
321 bScreen *screen = layout->screen;
326 View3D *v3d =
static_cast<View3D *
>(area->spacedata.first);
343 scene->r.cfra = 1.0f;
346 if (scene->nodetree) {
349 scene->nodetree =
nullptr;
350 scene->use_nodes =
false;
355 bmain, scene,
static_cast<ViewLayer *
>(scene->view_layers.first),
"ViewLayer");
359 view_layer->passflag &= ~SCE_PASS_Z;
368 scene->eevee.motion_blur_shutter_deprecated = 0.5f;
372 copy_v2_fl2(scene->safe_areas.action, 0.035f, 0.035f);
375 const float default_snap_angle_increment =
DEG2RADF(5.0f);
376 scene->toolsettings->snap_angle_increment_2d = default_snap_angle_increment;
377 scene->toolsettings->snap_angle_increment_3d = default_snap_angle_increment;
378 const float default_snap_angle_increment_precision =
DEG2RADF(1.0f);
379 scene->toolsettings->snap_angle_increment_2d_precision = default_snap_angle_increment_precision;
380 scene->toolsettings->snap_angle_increment_3d_precision = default_snap_angle_increment_precision;
389 &gp_falloff_curve->
clipr,
398 &gp_primitive_curve->
clipr,
409 if (mesh && (mesh->corners_num == 24) &&
412 const float uv_values[24][2] = {
413 {0.625, 0.50}, {0.875, 0.50}, {0.875, 0.75}, {0.625, 0.75}, {0.375, 0.75}, {0.625, 0.75},
414 {0.625, 1.00}, {0.375, 1.00}, {0.375, 0.00}, {0.625, 0.00}, {0.625, 0.25}, {0.375, 0.25},
415 {0.125, 0.50}, {0.375, 0.50}, {0.375, 0.75}, {0.125, 0.75}, {0.375, 0.50}, {0.625, 0.50},
416 {0.625, 0.75}, {0.375, 0.75}, {0.375, 0.25}, {0.625, 0.25}, {0.625, 0.50}, {0.375, 0.50},
418 float(*mloopuv)[2] =
static_cast<float(*)[2]
>(
420 memcpy(mloopuv, uv_values,
sizeof(
float[2]) * mesh->corners_num);
539 win->workspace_hook, workspace);
544 if (!
STREQ(screen->id.name + 2, workspace->id.name + 2)) {
552 if (layout != layout_iter) {
566 STRNCPY(scene->view_settings.view_transform,
"Standard");
567 STRNCPY(scene->view_settings.look,
"None");
571 STRNCPY(scene->view_settings.view_transform,
"AgX");
580 scene->audio.flag &= ~AUDIO_SYNC;
581 scene->flag &= ~SCE_FRAME_DROP;
609 mesh->smoothresh_legacy =
DEG2RADF(30);
615 mesh->remesh_voxel_size = 0.035f;
623 mesh->attributes_for_write().remove(
".sculpt_face_set");
628 camera->dof.focus_distance = 10.0f;
629 camera->dof.aperture_fstop = 2.8f;
634 light->clipsta = 0.05f;
635 light->att_dist = 40.0f;
641 ma->roughness = 0.5f;
646 for (
bNode *node : ma->nodetree->all_nodes()) {
647 if (node->type == SH_NODE_BSDF_PRINCIPLED) {
654 node,
SOCK_IN,
"Emission Strength");
661 else if (node->type == SH_NODE_SUBSURFACE_SCATTERING) {
694 light->shadow_maximum_resolution = 0.001f;
695 light->transmission_fac = 1.0f;
const char * BKE_appdir_folder_default() ATTR_WARN_UNUSED_RESULT
struct CurveProfile * BKE_curveprofile_add(eCurveProfilePresets preset)
CustomData interface, see also DNA_customdata_types.h.
void CustomData_free_layers(CustomData *data, eCustomDataType type, int totelem)
void * CustomData_get_layer_for_write(CustomData *data, eCustomDataType type, int totelem)
bool CustomData_has_layer(const CustomData *data, eCustomDataType type)
void BKE_gpencil_palette_ensure(struct Main *bmain, struct Scene *scene)
void IDP_ClearProperty(IDProperty *prop)
IDProperty * IDP_GetProperties(ID *id) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BKE_view_layer_rename(Main *bmain, Scene *scene, ViewLayer *view_layer, const char *newname)
void BKE_id_delete(Main *bmain, void *idv) ATTR_NONNULL()
IDNewNameResult BKE_libblock_rename(Main &bmain, ID &id, blender::StringRefNull name, const IDNewNameMode mode=IDNewNameMode::RenameExistingNever)
General operations, lookup, etc. for materials.
struct Material * BKE_gpencil_material_add(struct Main *bmain, const char *name)
void BKE_ntree_update_tag_node_property(bNodeTree *ntree, bNode *node)
bool BKE_paint_ensure_from_paintmode(Scene *sce, PaintMode mode)
void BKE_area_region_panels_free(ListBase *panels)
void BKE_workspace_tool_remove(WorkSpace *workspace, bToolRef *tref) ATTR_NONNULL(1
void BKE_workspace_layout_remove(Main *bmain, WorkSpace *workspace, WorkSpaceLayout *layout) ATTR_NONNULL()
WorkSpaceLayout * BKE_workspace_active_layout_for_workspace_get(const WorkSpaceInstanceHook *hook, const WorkSpace *workspace) GETTER_ATTRS
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void copy_qt_qt(float q[4], const float a[4])
MINLINE void copy_v2_fl2(float v[2], float x, float y)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE bool equals_v4v4(const float v1[4], const float v2[4]) ATTR_WARN_UNUSED_RESULT
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void zero_v3(float r[3])
MINLINE void copy_v4_fl(float r[4], float f)
void BLI_mempool_destroy(BLI_mempool *pool) ATTR_NONNULL(1)
#define STRNCPY(dst, src)
#define SET_FLAG_FROM_TEST(value, test, flag)
external readfile function prototypes.
@ ADS_FLAG_SUMMARY_COLLAPSED
#define DNA_struct_default_get(struct_name)
@ GP_DATA_STROKE_PAINTMODE
@ MA_BL_TRANSPARENT_SHADOW
@ GP_MATERIAL_MODE_SQUARE
@ ME_REMESH_REPROJECT_ATTRIBUTES
@ ME_REMESH_REPROJECT_VOLUME
@ SHD_SUBSURFACE_RANDOM_WALK
@ OB_MODE_PAINT_GREASE_PENCIL
Object is a sort of wrapper for general info.
@ RGN_FLAG_HIDDEN_BY_USER
@ SEQ_EDIT_SHOW_MISSING_MEDIA
@ SEQ_RENDER_SIZE_PROXY_100
@ SEQ_TIMELINE_SHOW_STRIP_DURATION
@ SEQ_TIMELINE_SHOW_THUMBNAILS
@ SEQ_TIMELINE_SHOW_STRIP_RETIMING
@ SEQ_TIMELINE_WAVEFORMS_HALF
@ SEQ_TIMELINE_SHOW_STRIP_SOURCE
@ SEQ_TIMELINE_SHOW_STRIP_NAME
@ SEQ_TIMELINE_SHOW_STRIP_COLOR_TAG
@ SEQ_PREVIEW_SHOW_OUTLINE_SELECTED
@ SEQ_DRAW_TRANSFORM_PREVIEW
@ SEQ_CACHE_SHOW_FINAL_OUT
@ V3D_SHADING_BACKGROUND_VIEWPORT
@ V3D_SHADING_MATERIAL_COLOR
@ V3D_AROUND_CENTER_MEDIAN
@ V3D_SHADING_SPECULAR_HIGHLIGHT
@ V3D_SHADING_CAVITY_CURVATURE
Read Guarded memory(de)allocation.
draw_view in_light_buf[] float
void MEM_freeN(void *vmemh)
void mesh_smooth_set(Mesh &mesh, bool use_smooth, bool keep_sharp_edges=false)
bNodeSocket * node_find_socket(bNode *node, eNodeSocketInOut in_out, StringRef identifier)
void node_tree_free_embedded_tree(bNodeTree *ntree)
const char * RE_engine_id_BLENDER_EEVEE_NEXT
struct CurveMapping * cur_primitive
struct CurveMapping * cur_falloff
struct MaterialGPencilStyle * gp_style
int automasking_boundary_edges_propagation_steps
FileSelectParams * params
struct BLI_mempool * treestore
struct SequencerCacheOverlay cache_overlay
struct SequencerTimelineOverlay timeline_overlay
struct SequencerPreviewOverlay preview_overlay
float normals_constant_screen_size
float texture_paint_mode_opacity
float vertex_paint_mode_opacity
float weight_paint_mode_opacity
float background_color[3]
ID * do_versions_rename_id(Main *bmain, const short id_type, const char *name_src, const char *name_dst)
float * version_cycles_node_socket_float_value(bNodeSocket *socket)
float * version_cycles_node_socket_rgba_value(bNodeSocket *socket)
void BLO_update_defaults_workspace(WorkSpace *workspace, const char *app_template)
static void blo_update_defaults_screen(bScreen *screen, const char *app_template, const char *workspace_name)
static void blo_update_defaults_scene(Main *bmain, Scene *scene)
void BLO_update_defaults_startup_blend(Main *bmain, const char *app_template)
static bool blo_is_builtin_template(const char *app_template)