Blender V5.0
blender.cc File Reference
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_utildefines.h"
#include "IMB_imbuf.hh"
#include "IMB_moviecache.hh"
#include "MOV_util.hh"
#include "BKE_addon.h"
#include "BKE_appdir.hh"
#include "BKE_asset.hh"
#include "BKE_blender.hh"
#include "BKE_blender_user_menu.hh"
#include "BKE_blender_version.h"
#include "BKE_brush.hh"
#include "BKE_callbacks.hh"
#include "BKE_global.hh"
#include "BKE_idprop.hh"
#include "BKE_main.hh"
#include "BKE_node.hh"
#include "BKE_screen.hh"
#include "BKE_studiolight.h"
#include "DEG_depsgraph.hh"
#include "RE_texture.h"
#include "BLF_api.hh"
#include "SEQ_utils.hh"
#include "CLG_log.h"

Go to the source code of this file.

Classes

struct  AtExitData

Macros

#define U   BLI_STATIC_ASSERT(false, "Global 'U' not allowed, only use arguments passed in!")
#define VALUE_SWAP(id)
#define DATA_SWAP(id)
#define FLAG_SWAP(id, ty, flags)

Functions

Blender Free on Exit
void BKE_blender_free ()
Blender #Global Initialize/Clear
void BKE_blender_globals_init ()
void BKE_blender_globals_clear ()
void BKE_blender_globals_main_replace (Main *bmain)
MainBKE_blender_globals_main_swap (Main *new_gmain)
void BKE_blender_globals_crash_path_get (char filepath[FILE_MAX])
Blender Preferences
static void keymap_item_free (wmKeyMapItem *kmi)
void BKE_blender_userdef_data_swap (UserDef *userdef_a, UserDef *userdef_b)
void BKE_blender_userdef_data_set (UserDef *userdef)
void BKE_blender_userdef_data_set_and_free (UserDef *userdef)
static void userdef_free_keymaps (UserDef *userdef)
static void userdef_free_keyconfig_prefs (UserDef *userdef)
static void userdef_free_user_menus (UserDef *userdef)
static void userdef_free_addons (UserDef *userdef)
void BKE_blender_userdef_data_free (UserDef *userdef, bool clear_fonts)
Blender Preferences (Application Templates)
void BKE_blender_userdef_app_template_data_swap (UserDef *userdef_a, UserDef *userdef_b)
void BKE_blender_userdef_app_template_data_set (UserDef *userdef)
void BKE_blender_userdef_app_template_data_set_and_free (UserDef *userdef)

Variables

Global G
UserDef U

Blender Version Access

static char blender_version_string [48] = ""
static char blender_version_string_compact [48] = ""
static void blender_version_init ()
const char * BKE_blender_version_string ()
const char * BKE_blender_version_string_compact ()
void BKE_blender_version_blendfile_string_from_values (char *str_buff, const size_t str_buff_maxncpy, const short file_version, const short file_subversion)
bool BKE_blender_version_is_alpha ()
bool BKE_blender_version_is_lts ()

Blender's AtExit

Note
Don't use MEM_mallocN so functions can be registered at any time.
static struct AtExitDatag_atexit = nullptr
void BKE_blender_atexit_register (void(*func)(void *user_data), void *user_data)
void BKE_blender_atexit_unregister (void(*func)(void *user_data), const void *user_data)
void BKE_blender_atexit ()

Detailed Description

Application level startup/shutdown functionality.

Definition in file blender.cc.

Macro Definition Documentation

◆ DATA_SWAP

#define DATA_SWAP ( id)
Value:
{ \
UserDef userdef_tmp; \
memcpy(&(userdef_tmp.id), &(userdef_a->id), sizeof(userdef_tmp.id)); \
memcpy(&(userdef_a->id), &(userdef_b->id), sizeof(userdef_tmp.id)); \
memcpy(&(userdef_b->id), &(userdef_tmp.id), sizeof(userdef_tmp.id)); \
} \
((void)0)

Referenced by BKE_blender_userdef_app_template_data_swap().

◆ FLAG_SWAP

#define FLAG_SWAP ( id,
ty,
flags )
Value:
{ \
CHECK_TYPE(&(userdef_a->id), ty *); \
const ty f = flags; \
const ty a = userdef_a->id; \
const ty b = userdef_b->id; \
userdef_a->id = (userdef_a->id & ~f) | (b & f); \
userdef_b->id = (userdef_b->id & ~f) | (a & f); \
} \
((void)0)

Referenced by BKE_blender_userdef_app_template_data_swap().

◆ U

#define U   BLI_STATIC_ASSERT(false, "Global 'U' not allowed, only use arguments passed in!")

Referenced by acf_generic_group_offset(), acf_show_channel_colors(), action_create(), action_group_colors_sync(), actionzone_modal(), AttributeTableEntry< T >::add(), blender::ed::object::add_generic_get_opts(), btDeformableLinearElasticityForce::addScaledElasticForce(), btDeformableNeoHookeanForce::addScaledElasticForce(), blender::asset_system::all_valid_asset_library_refs(), alloc_driver_fcurve(), ANIM_center_frame(), ANIM_channel_draw(), ANIM_UI_get_channel_button_width(), ANIM_UI_get_channel_height(), ANIM_UI_get_channel_name_width(), ANIM_UI_get_channel_skip(), annotation_draw_exit(), annotation_draw_stroke_2d(), annotation_draw_stroke_3d(), annotation_draw_stroke_buffer(), annotation_session_initpaint(), area_animate_highlight_cb(), area_azone_init(), area_calc_totrct(), area_draw_azone(), area_draw_azone_fullscreen(), armature_bone_primitive_add_exec(), arrow_draw_geom(), AS_asset_library_find_suitable_root_path_from_path(), blender::ed::asset::asset_bundle_install_poll(), blender::bke::asset_edit_weak_reference_from_id(), blender::bke::asset_link_id(), blender::ed::asset::asset_local_id_ensure_imported(), associate_blend_exec(), axis_set_view(), blender::draw::edit_select::Instance::begin_sync(), blender::draw::overlay::AntiAliasing::begin_sync(), blender::draw::overlay::Armatures::begin_sync(), blender::draw::overlay::Cursor::begin_sync(), blender::draw::overlay::Meshes::begin_sync(), blender::draw::overlay::MeshUVs::begin_sync(), blender::draw::overlay::Outline::begin_sync(), blender::draw::overlay::Wireframe::begin_sync(), EPA< btConvexTemplate >::bind(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_resources(), BKE_autoexec_match(), BKE_blender_globals_init(), BKE_blender_userdef_app_template_data_set(), BKE_blender_userdef_data_set(), BKE_blendfile_userdef_write_all(), BKE_blendfile_userdef_write_app_template(), BKE_gpencil_layer_addnew(), BKE_gpencil_palettecolor_addnew(), BKE_image_free_old_gputextures(), BKE_memfile_undo_encode(), BKE_nlastrip_validate_fcurves(), BKE_render_preview_pixel_size(), BKE_screen_header_alignment_reset(), BKE_studiolight_studio_edit_get(), BKE_subsurf_modifier_can_do_gpu_subdiv(), BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh(), BKE_text_load_ex(), blend_file_thumb_from_camera(), blf_get_sample_text(), blf_glyph_cache_new(), BLI_ewa_filter(), BLI_str_utf32_char_to_lower(), BLI_str_utf32_char_to_upper(), blo_do_versions_250(), blo_do_versions_270(), blo_do_versions_280(), blo_do_versions_290(), blo_do_versions_500(), block_create_autorun_warning(), BLT_translate_iface(), BLT_translate_new_dataname(), BLT_translate_reports(), BLT_translate_tooltips(), box_select_graphkeys(), blender::ed::sculpt_paint::brush_asset_delete_exec(), blender::ed::sculpt_paint::brush_asset_save_as_invoke(), blender::ed::sculpt_paint::brush_asset_save_exec(), brush_scale_size_exec(), btGetCurrentThreadIndex(), btGjkEpaSolver3_Distance(), btGjkEpaSolver3_Penetration(), btQuickprofGetCurrentThreadIndex2(), blender::ed::asset::shelf::AssetViewItem::build_grid_tile(), button2d_draw_intern(), button2d_geom_draw_backdrop(), button_activate_exit(), button_activate_state(), button_tooltip_timer_reset(), buttons_create(), cage2d_draw_box_corners(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_wire(), cage3d_draw_box_corners(), cage3d_draw_circle_wire(), blender::eevee::calc_sphere_extent(), calc_text_rcts(), camera_sample_panorama(), blender::ed::vse::can_select_handle(), Freestyle::Cast::cast(), blender::ed::vse::channel_draw_context_init(), channel_ui_data_init(), clamp(), clip_create(), blender::ed::object::collection_drop_exec(), blender::ed::outliner::collection_duplicate_exec(), blender::ed::object::collection_instance_add_exec(), component_menu(), blender::draw::Manager::compute_visibility(), libmv::euclidean_resection::ComputePointsCoordinatesInCameraFrame(), libmv::ComputeTrackingEquation(), console_create(), console_scrollback_limit(), console_textview_draw_cursor(), construct_rna_paths(), context_cycle_prop_get(), blender::gpu::VKSampler::create(), blender::ed::asset::shelf::AssetDragController::create_drag_data(), blender::animrig::create_fcurve_for_channel(), blender::ed::animrig::create_pose_asset_user_library(), blender::ed::space_node::create_search_popup_block(), curvemap_clipping_func(), blender::fn::multi_function::CustomMF_Constant< T >::CustomMF_Constant(), deselect_graph_keys(), blender::DestructValueAtAddress< T >::DestructValueAtAddress(), dial_draw_intern(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), btGjkEpaSolver2::Distance(), do_history(), draw_azone_arrow(), draw_backdrop(), draw_backdrops(), blender::ed::vse::draw_cache_background(), blender::ed::vse::draw_cache_view(), blender::ed::greasepencil::image_render::draw_circles(), draw_columnheader_columns(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_fcurve(), draw_fcurve_curve(), draw_fcurve_handles(), draw_fcurve_samples(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_marker(), draw_marker_texts(), blender::ed::space_node::draw_nodetree(), blender::ed::vse::draw_overlap_frame_indicator(), draw_overshoot_triangle(), draw_parallel_lines(), draw_spline_points(), blender::ed::vse::draw_strip_in_view(), draw_text_decoration(), draw_text_main(), draw_vertical_scale_indicators(), draw_view_axis(), blender::ed::transform::drawArrow(), blender::ed::transform::drawAutoKeyWarning(), blender::ed::transform::drawLine(), blender::ed::transform::drawPropCircle(), blender::ed::transform::drawPropRange(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawTransformPixel(), drawviewborder(), drop_extension_url_poll(), DRW_cache_free_old_batches(), blender::draw::DRW_curves_batch_cache_free_old(), blender::draw::DRW_mesh_batch_cache_free_old(), blender::draw::DRW_pointcloud_batch_cache_free_old(), blender::ed::object::duplicate_exec(), blender::ed::greasepencil::duplicate_grease_pencil_object(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_parallel_lines_draw(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_sample_from_surface(), ED_area_header_switchbutton(), ED_area_headersize(), ED_area_max_regionsize(), ED_curve_add_nurbs_primitive(), ED_draw_imbuf_method(), ED_fileselect_params_to_userdef(), ED_fileselect_set_params_from_userdef(), ED_info_draw_stats(), ED_info_statusbar_string(), ED_info_statusbar_string_ex(), ED_node_supports_preview(), ED_object_texture_paint_mode_enter_ex(), ED_object_texture_paint_mode_exit_ex(), ED_paint_shading_color_override(), ED_region_cache_draw_curfra_label(), ED_region_draw_overflow_indication(), ED_region_image_overlay_info_text_draw(), ED_region_info_draw_multiline(), ED_region_is_overlap(), ED_screen_draw_edges(), ED_screen_user_menu_ensure(), ED_screen_user_menus_find(), ED_screens_init(), ed_screens_statusbar_menu_create(), ED_spacetypes_init(), ED_undo_push(), ED_view3d_autodist(), ED_view3d_cursor3d_update(), ED_view3d_cursor_snap_draw_util(), ED_view3d_persp_ensure(), ED_view3d_pixel_size(), ED_view3d_select_dist_px(), ED_view3d_smooth_view_undo_end(), edbm_bevel_init(), EDBM_preselect_edgering_draw(), GJK< btConvexTemplate >::EncloseOrigin(), libmv::euclidean_resection::EuclideanResectionPPnP(), EPA< btConvexTemplate >::Evaluate(), GJK< btConvexTemplate >::Evaluate(), blender::ed::sculpt_paint::AddOperationExecutor::execute(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::DeleteOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::execute(), EPA< btConvexTemplate >::expand(), eyedropper_draw_cursor_text_region(), fcurve_display_alpha(), file_browse_exec(), file_browse_invoke(), file_main_region_message_subscribe(), file_refresh(), filelist_compare_asset_libraries(), fileselect_ensure_updated_file_params(), fileselect_refresh_asset_params(), blender::asset_system::AssetLibraryService::find_custom_asset_library_from_library_ref(), blender::asset_system::AssetLibraryService::find_custom_preferences_asset_library_from_asset_weak_ref(), find_prev_next_keyframes(), flipSign(), flipSign(), blender::ed::space_node::frame_node_layout(), fsmenu_read_system(), fullscreen_azone_init(), fullscreen_click_rcti_init(), blender::ed::asset::get_asset_library_from_opptr(), get_blend_file_header(), get_current_time_str(), blender::ed::graph::get_editable_fcurves(), blender::ed::asset::shelf::get_enabled_catalog_path_list(), get_graph_keyframe_extents(), blender::animrig::get_keyframe_settings(), get_nearest_fcurve_verts_list(), blender::ed::space_node::get_nested_previews(), blender::ui::string_search::get_recent_cache_or_null(), blender::ui::string_search::get_recent_cache_storage(), btSoftBody::getRigidTransform(), ghost_event_proc(), blender::ed::transform::gizmo2d_generic_poll(), gizmo_arrow_test_select(), gizmo_move_modal(), gizmo_primitive_draw_geom(), GPU_texture_size_with_limit(), blender::gpu::GPUSecondaryContext::GPUSecondaryContext(), graph_create(), graph_draw_ghost_curves(), graphedit_get_context(), handleNumInput(), blender::ed::transform::headerTranslation(), Freestyle::VecMat::HVec3< uint >::HVec3(), Freestyle::VecMat::HVec3< uint >::HVec3(), icon_node_socket_draw(), blender::ed::vse::icon_width_get(), id_search_allows_id(), blender::ed::asset::id_type_is_supported(), image_create(), image_main_region_draw(), image_open_invoke(), image_view_zoom_in_exec(), image_view_zoom_init(), image_view_zoom_invoke(), image_view_zoom_modal(), image_view_zoom_out_exec(), image_zoom_apply(), imm_draw_box_checker_2d(), info_create(), info_textview_draw_rect_calc(), blender::workbench::SceneResources::init(), blender::workbench::SceneState::init(), ViewOpsData::init_navigation(), EPA< btConvexTemplate >::Initialize(), initialize_animdata_selection_filter(), blender::ed::transform::initTransInfo(), initWalkInfo(), blender::ed::vse::inner_clickable_handle_size_get(), interp_m3_m3m3(), blender::math::interpolate(), blender::bke::liboverride::is_auto_resync_enabled(), blender::animrig::is_autokey_mode(), blender::animrig::is_autokey_on(), blender::seq::is_cache_full(), blender::animrig::is_keying_flag(), keymap_item_modified(), blender::ed::animation::greasepencil::layer_offset(), glsl::ldexp(), blender::asset_system::PreferencesOnDiskAssetLibrary::library_reference(), blender::ed::asset::library_reference_from_enum_value(), blender::ed::asset::library_reference_to_enum_value(), blender::ed::asset::library_reference_to_rna_enum_itemf(), loose_data_instantiate_collection_process(), makeLambdaShape(), makeUpperBidiag(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::MatBase(), material_paint_slot_filter(), Freestyle::VecMat::Matrix< T, M, N >::Matrix(), max(), memfile_undosys_poll(), memfile_undosys_step_decode(), menu_add_shortcut(), menu_change_shortcut(), menu_items_from_ui_create(), mesh_separate_arrays(), mesh_separate_tagged(), min(), mnee_compute_transfer_matrix(), libmv::MotionFromEssential(), mouse_graph_keys(), move_geom_draw(), nla_create(), blender::ed::space_node::node_create(), blender::ed::space_node::node_draw_basis(), blender::ed::space_node::node_draw_collapsed(), blender::ed::space_node::node_draw_extra_info_panel_back(), blender::ed::space_node::node_draw_node_group_indicator(), blender::ed::space_node::node_draw_panels(), blender::ed::space_node::node_draw_shadow(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::space_node::node_duplicate_exec(), blender::ed::space_node::node_find_exec_fn(), blender::nodes::node_geo_list_cc::node_gather_link_searches(), blender::nodes::node_geo_list_get_item_cc::node_gather_link_searches(), blender::nodes::node_geo_list_length_cc::node_gather_link_searches(), blender::ed::space_node::node_get_resize_direction(), blender::ed::space_node::node_header_custom_tooltip(), blender::ed::space_node::node_insert_offset_invoke(), blender::ed::space_node::node_insert_on_link_flags(), blender::ed::space_node::node_is_previewable(), blender::ed::space_node::node_link_insert_offset_ntree(), blender::bke::node_position_relative(), blender::ed::object::object_add_named_exec(), blender::ed::object::object_armature_add_exec(), object_material_assign(), object_mouse_select_menu(), open_invoke(), open_invoke(), blender::MutableSpan< T >::operator Span< U >(), blender::DefaultHash< T >::operator()(), blender::PointerHashes< T >::operator()(), Freestyle::VecMat::Matrix< T, M, N >::operator*=(), Freestyle::VecMat::value_type< T, 2 >::operator*=(), Freestyle::VecMat::Matrix< T, M, N >::operator/=(), Freestyle::VecMat::value_type< T, 2 >::operator/=(), blender::ed::outliner::outliner_create(), blender::ed::outliner::outliner_draw_highlights(), blender::ed::outliner::outliner_draw_overrides_rna_buts(), blender::ed::outliner::outliner_draw_tree(), blender::geometry::p_chart_convex_hull(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), paint_proj_new_stroke(), panel_draw_aligned_backdrop(), panel_draw_border(), panel_draw_softshadow(), btGjkEpaSolver2::Penetration(), playanim_window_open(), slim::polar_svd(), blender::ed::animrig::pose_asset_create_invoke(), blender::ed::space_node::viewer_linking::position_viewer_node(), glsl::pow(), preferences_asset_library_add_exec(), preferences_asset_library_remove_exec(), preferences_asset_library_remove_poll(), preferences_autoexec_add_exec(), preferences_autoexec_remove_exec(), preferences_extension_repo_add_exec(), preferences_extension_repo_remove_exec(), preferences_extension_repo_remove_invoke(), preferences_extension_repo_remove_poll(), preferences_reset_default_theme_exec(), process(), project_paint_op(), GJK< btConvexTemplate >::projectorigin(), GJK< btConvexTemplate >::projectorigin(), GJK< btConvexTemplate >::projectorigin(), blender::math::pseudo_invert(), pseudoinverse_m4_m4(), ray_triangle_intersect(), ray_triangle_intersect_self(), read_homefile_props(), blender::ui::string_search::read_recent_searches_file(), recent_files_menu_draw(), region_azone_edge_poll(), region_azone_tab_plus(), region_draw_azone_tab_arrow(), region_overlap_fix(), region_rect_recursive(), region_scale_modal(), region_toggle_hidden(), remove_shortcut_func(), render_result_exr_file_cache_read(), render_result_exr_file_cache_write(), render_view_open(), LayoutRadial::resolve_impl(), LayoutRootPieMenu::resolve_impl(), rigidbody_world_export_invoke(), blender::ed::asset::rna_enum_add_custom_libraries(), round_box__edges(), round_box_edges(), blender::gpu::MTLContext::sampler_state_cache_init(), blender::gpu::GLTexture::samplers_update(), blender::asset_system::tests::AssetCatalogTest::save_from_memory_into_existing_asset_lib(), save_set_compress(), scene_add(), scene_init_data(), sclip_zoom_set_factor_exec(), screen_animation_step_invoke(), screen_draw_area_closed(), screen_draw_area_drag_tip(), screen_draw_dock_preview(), screen_draw_join_highlight(), screen_draw_move_highlight(), screen_draw_region_scale_highlight(), screen_draw_split_preview(), screen_geom_find_active_scredge(), screen_geom_find_area_split_point(), screen_geom_vertices_scale(), screen_geom_vertices_scale_pass(), script_create(), sculpt_needs_pbvh_pixels(), sculpt_update_object(), SCULPT_use_image_paint_brush(), blender::ed::asset::selected_asset_library(), separate_armature_exec(), separate_exec(), blender::ed::vse::seq_build_proxy(), blender::ed::vse::sequencer_add_movie_multiple_strips(), blender::ed::vse::sequencer_add_movie_single_strip(), blender::ed::vse::sequencer_add_scene_asset(), blender::ed::vse::sequencer_create(), blender::ed::vse::sequencer_preview_draw_overlays(), blender::ed::asset::shelf::settings_set_catalog_path_enabled(), blender::ed::asset::list::AssetList::setup(), setup_app_userdef(), blender::bke::tests::SceneTest::SetUpTestSuite(), blender::ed::space_node::shader_preview_startjob(), btGjkEpaSolver2::SignedDistance(), singularValueDecomposition(), singularValueDecomposition(), singularValueDecomposition(), slider_draw(), blender::ed::space_node::socket_is_occluded(), sort(), space_text_do_suggest_select(), space_view3d_refresh(), blender::Span< T >::Span(), blender::ed::spreadsheet::spreadsheet_create(), Freestyle::VecMat::SquareMatrix< uint, 2 >::SquareMatrix(), stored_window_bounds(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::seq::strip_duplicate(), blender::ed::vse::strip_handle_draw_size_get(), blender::ed::vse::strip_select_from_preview(), blender::ed::vse::StripsDrawBatch::StripsDrawBatch(), MinkowskiDiff< btConvexTemplate >::Support(), KDL::svd_eigen_HH(), svd_m4(), template_common_search_menu(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), blender::bke::tests::TEST_F(), text_create(), text_delete_exec(), blender::ed::vse::text_edit_draw_cursor(), text_init_data(), text_insert_invoke(), text_jump_to_file_at_point_exec(), texture_paint_camera_project_exec(), timeline_draw_cache(), tool_generic_create_gizmo(), libmv::TrkltRegionTracker::Track(), blender::ed::transform::transform_draw_cursor_draw(), triangle_light_sample(), blender::ed::asset::types_supported_as_filter_flags(), ui_apply_but_TEX(), ui_block_align_but_to_region(), ui_block_calc_pie_segment(), ui_block_colorpicker(), UI_block_draw(), ui_block_func_POPOVER(), ui_but_build_drawstr_float(), ui_but_is_cursor_warp(), ui_but_string_get_ex(), ui_color_picker_hsv_to_rgb(), ui_color_picker_rgb_to_hsv(), ui_color_picker_rgb_to_hsv_compat(), ui_colorpicker_circle(), ui_drag_toggle_set_xy_xy(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HSV_v(), ui_draw_but_HSVCIRCLE(), ui_draw_but_HSVCUBE(), ui_draw_but_TAB_outline(), ui_draw_colorband_handle(), ui_draw_dialog_alert(), ui_draw_dropshadow(), UI_draw_icon_tri(), ui_draw_menu_item(), ui_draw_pie_center(), ui_draw_popover_back(), ui_draw_popover_back_impl(), UI_draw_roundbox_3fv_alpha(), UI_draw_roundbox_3ub_alpha(), UI_draw_roundbox_4fv(), UI_draw_roundbox_aa(), UI_draw_text_underline(), ui_draw_widget_back_color(), UI_draw_widget_scroll(), UI_GetTheme(), ui_handle_menu_event(), ui_hsv_cursor(), ui_hsvcircle_pos_from_vals(), ui_icon_view_menu_cb(), ui_item_enum_expand_elem_exec(), ui_number_from_string_factor(), ui_numedit_but_HSVCIRCLE(), UI_panel_category_draw_all(), ui_pie_handler(), UI_popover_begin(), ui_popover_panel_create(), UI_popover_panel_invoke(), ui_popup_block_position(), ui_popup_block_refresh(), ui_popup_context_menu_for_button(), ui_rna_update_preferences_dirty(), ui_searchbox_draw_clip_tri_down(), ui_searchbox_draw_clip_tri_up(), ui_searchbox_event(), ui_searchbox_region_layout_fn(), UI_SetTheme(), UI_style_get(), UI_style_init_default(), ui_textedit_set_cursor_pos(), UI_theme_init_default(), UI_ThemeGetColorPtr(), ui_tooltip_create_with_data(), ui_tooltip_data_from_button_or_extra_icon(), ui_tooltip_data_from_tool(), ui_tooltip_region_draw_cb(), UI_update_text_styles(), UI_view2d_dot_grid_draw(), UI_view2d_edge_pan_apply(), uifont_to_blfont(), uiStyleInit(), uiTemplateColorPicker(), uiTemplateInputStatusBorder(), uiTemplateRunningJobs(), uiTemplateStatusInfo(), unassociate_blend_exec(), blender::asset_system::EssentialsAssetLibrary::update_default_import_method(), update_import_method_for_asset_browsers(), update_import_method_for_user_libraries(), blender::ed::space_node::update_needed_flag(), blender::draw::overlay::Resources::update_theme_settings(), blender::ed::asset::user_library_to_library_ref(), userpref_main_region_layout(), userpref_show_exec(), uv_mouse_select_multi(), uv_nearest_hit_init_dist_px(), v3d_cursor_plane_draw(), v3d_cursor_snap_update(), Freestyle::VecMat::value_type< T, 2 >::Vec(), Freestyle::VecMat::Vec2< uint >::Vec2(), Freestyle::VecMat::Vec3< uint >::Vec3(), blender::VecBase< T, 3 >::VecBase(), blender::VecBase< T, 3 >::VecBase(), blender::Vector< SubdivCCGCoord, 256 >::Vector(), vicon_rgb_color_draw(), view2d_edge_pan_speed(), view2d_scrollers_calc(), view3d_create(), view3d_cursor3d_invoke(), view3d_draw_region_info(), view3d_navigate_invoke(), view3d_ruler_item_mousemove(), view3d_ruler_to_gpencil(), view_axis_exec(), view_to_string__time(), view_zoom_apply(), view_zoom_in_exec(), view_zoom_init(), view_zoom_invoke(), view_zoom_modal(), view_zoom_out_exec(), view_zoomdrag_apply(), view_zoomdrag_invoke(), view_zoomdrag_modal(), view_zoomin_invoke(), view_zoomout_invoke(), viewdolly_apply(), viewdolly_exec(), viewdolly_invoke(), viewdolly_modal(), viewops_flag_from_prefs(), vieworbit_exec(), viewroll_exec(), viewrotate_apply(), viewrotate_apply_snap(), viewzoom_exec(), viewzoom_invoke_impl(), viewzoom_modal_impl(), viewzoom_scale_value(), blender::ed::object::volume_import_invoke(), walkEvent(), widget_draw_extra_mask(), widget_draw_submenu_tria(), widget_draw_text(), widget_draw_text_icon(), widget_menu_itembut(), widget_nodesocket(), widget_numbut_draw(), widget_optionbut(), widget_radius_from_zoom(), widget_roundbox_set(), widget_softshadow(), WIDGETGROUP_navigate_draw_prepare(), WIDGETGROUP_navigate_poll(), WIDGETGROUP_navigate_poll(), wm_autosave_delete(), wm_autosave_timer_begin(), wm_autosave_timer_begin_ex(), wm_autosave_write_try(), wm_block_about_create(), wm_block_autorun_warning_enable_scripts(), wm_block_autorun_warning_reload_with_scripts(), wm_block_splash_create(), wm_block_splash_image(), wm_event_add_ghostevent(), WM_event_drag_threshold(), wm_event_is_double_click(), WM_event_is_modal_drag_exit(), wm_eventemulation(), wm_exit_blender_invoke(), WM_exit_ex(), wm_file_write(), wm_gizmo_calculate_scale(), WM_gizmogroup_keymap_template_select_ex(), wm_gpu_backend_override_from_userdef(), wm_handler_fileselect_do(), wm_handlers_do_gizmo_handler(), wm_history_file_read(), wm_history_file_update(), wm_homefile_read_ex(), wm_homefile_read_exec(), wm_homefile_write_exec(), wm_homefile_write_invoke(), WM_init(), WM_init_input_devices(), wm_init_splash_show_on_startup_check(), wm_init_userdef(), WM_keyconfig_active(), WM_keyconfig_remove(), WM_keyconfig_set_active(), WM_keyconfig_update_ex(), WM_keymap_poll(), WM_keymap_restore_to_default(), wm_open_init_load_ui(), wm_open_init_use_scripts(), wm_open_mainfile_check(), wm_operator_close_file_dialog_if_needed(), wm_operator_invoke(), wm_operator_props_popup_ex(), WM_operator_smooth_viewtx_get(), wm_pressure_curve(), wm_quit_with_optional_confirmation_prompt(), wm_read_factory_settings_invoke(), wm_save_as_mainfile_invoke(), wm_save_mainfile_invoke(), WM_system_gpu_context_create(), WM_userdef_event_map(), WM_userdef_event_type_from_keymap_type(), wm_userpref_read_exec(), wm_userpref_read_invoke(), wm_window_close(), WM_window_dpi_set_userdef(), wm_window_ghostwindow_add(), wm_xr_controller_aim_draw(), wm_xr_navigation_fly_modal(), WM_xr_session_state_vignette_update(), workspace_layout_set_poll(), write_bhead(), write_file_handle(), blender::ui::string_search::write_recent_searches_file(), writedata(), writestruct_at_address_nr(), and zeroChase().

◆ VALUE_SWAP

#define VALUE_SWAP ( id)
Value:
{ \
std::swap(userdef_a->id, userdef_b->id); \
}

Referenced by BKE_blender_userdef_app_template_data_swap().

Function Documentation

◆ BKE_blender_atexit()

◆ BKE_blender_atexit_register()

void BKE_blender_atexit_register ( void(* func )(void *user_data),
void * user_data )

◆ BKE_blender_atexit_unregister()

void BKE_blender_atexit_unregister ( void(* func )(void *user_data),
const void * user_data )

Definition at line 499 of file blender.cc.

References free(), AtExitData::func, g_atexit, AtExitData::next, and AtExitData::user_data.

Referenced by main().

◆ BKE_blender_free()

◆ BKE_blender_globals_clear()

void BKE_blender_globals_clear ( )

◆ BKE_blender_globals_crash_path_get()

void BKE_blender_globals_crash_path_get ( char filepath[FILE_MAX])

◆ BKE_blender_globals_init()

void BKE_blender_globals_init ( )

◆ BKE_blender_globals_main_replace()

void BKE_blender_globals_main_replace ( Main * bmain)

Replace current global Main by the given one, freeing existing one.

Definition at line 228 of file blender.cc.

References BKE_blender_globals_clear(), BLI_assert, G_MAIN, and Main::is_global_main.

Referenced by BKE_blender_globals_init(), setup_app_data(), and BlendfileLoadingBaseTest::SetUpTestCase().

◆ BKE_blender_globals_main_swap()

Main * BKE_blender_globals_main_swap ( Main * new_gmain)

Replace current global Main by the given one, returning the old one.

Warning
Advanced, risky workaround addressing the issue that current RNA is not able to process correctly non-G_MAIN data, use with (a lot of) care.

Definition at line 236 of file blender.cc.

References BLI_assert, G_MAIN, and Main::is_global_main.

Referenced by BKE_lib_override_library_main_update(), and do_versions_after_linking_280().

◆ BKE_blender_userdef_app_template_data_set()

void BKE_blender_userdef_app_template_data_set ( UserDef * userdef)

◆ BKE_blender_userdef_app_template_data_set_and_free()

void BKE_blender_userdef_app_template_data_set_and_free ( UserDef * userdef)

Definition at line 469 of file blender.cc.

References BKE_blender_userdef_app_template_data_set(), and MEM_freeN().

Referenced by wm_homefile_read_ex().

◆ BKE_blender_userdef_app_template_data_swap()

void BKE_blender_userdef_app_template_data_swap ( UserDef * userdef_a,
UserDef * userdef_b )

This function defines which settings a template will override for the user preferences.

Note
the order of userdef_a & userdef_b isn't important as values are simply swapped.

Definition at line 408 of file blender.cc.

References DATA_SWAP, FLAG_SWAP, USER_SAVE_PROMPT, USER_SHOW_GIZMO_NAVIGATE, USER_SPLASH_DISABLE, and VALUE_SWAP.

Referenced by BKE_blender_userdef_app_template_data_set(), and BKE_blendfile_userdef_write_app_template().

◆ BKE_blender_userdef_data_free()

◆ BKE_blender_userdef_data_set()

void BKE_blender_userdef_data_set ( UserDef * userdef)

◆ BKE_blender_userdef_data_set_and_free()

void BKE_blender_userdef_data_set_and_free ( UserDef * userdef)

Definition at line 288 of file blender.cc.

References BKE_blender_userdef_data_set(), and MEM_freeN().

Referenced by setup_app_userdef(), and wm_homefile_read_ex().

◆ BKE_blender_userdef_data_swap()

void BKE_blender_userdef_data_swap ( UserDef * userdef_a,
UserDef * userdef_b )

Definition at line 277 of file blender.cc.

Referenced by BKE_blender_userdef_data_set().

◆ BKE_blender_version_blendfile_string_from_values()

void BKE_blender_version_blendfile_string_from_values ( char * str_buff,
const size_t str_buff_maxncpy,
const short file_version,
const short file_subversion )

Fill in given string buffer with user-readable formatted file version and subversion (if provided).

Parameters
str_buffa char buffer where the formatted string is written, minimal recommended size is 8, or 16 if subversion is provided.
file_subversionthe file subversion, if given value < 0, it is ignored, and only the file_version is used.

Definition at line 156 of file blender.cc.

References BLI_snprintf_utf8().

Referenced by file_overwrite_detailed_info_show(), is_minversion_older_than_blender(), and ui_template_status_tooltip().

◆ BKE_blender_version_is_alpha()

bool BKE_blender_version_is_alpha ( void )

Returns true when version cycle is alpha, otherwise (beta, rc) returns false.

Definition at line 176 of file blender.cc.

References BLENDER_VERSION_CYCLE, STREQ, and STRINGIFY.

Referenced by BLO_sanitize_experimental_features_userpref_blend().

◆ BKE_blender_version_is_lts()

bool BKE_blender_version_is_lts ( void )

Returns true when version suffix is LTS, otherwise returns false.

Definition at line 182 of file blender.cc.

References BLENDER_VERSION_SUFFIX, STREQ, and STRINGIFY.

Referenced by blender_version_init().

◆ BKE_blender_version_string()

◆ BKE_blender_version_string_compact()

const char * BKE_blender_version_string_compact ( void )

As above but does not show patch version.

Definition at line 151 of file blender.cc.

References blender_version_string_compact.

Referenced by ED_info_statusbar_string_ex().

◆ blender_version_init()

◆ keymap_item_free()

void keymap_item_free ( wmKeyMapItem * kmi)
static

Definition at line 267 of file blender.cc.

References IDP_FreeProperty(), wmKeyMapItem::properties, and wmKeyMapItem::ptr.

Referenced by userdef_free_keymaps().

◆ userdef_free_addons()

void userdef_free_addons ( UserDef * userdef)
static

◆ userdef_free_keyconfig_prefs()

void userdef_free_keyconfig_prefs ( UserDef * userdef)
static

◆ userdef_free_keymaps()

void userdef_free_keymaps ( UserDef * userdef)
static

◆ userdef_free_user_menus()

void userdef_free_user_menus ( UserDef * userdef)
static

Variable Documentation

◆ blender_version_string

char blender_version_string[48] = ""
static

Definition at line 99 of file blender.cc.

Referenced by BKE_blender_version_string(), and blender_version_init().

◆ blender_version_string_compact

char blender_version_string_compact[48] = ""
static

Definition at line 102 of file blender.cc.

Referenced by BKE_blender_version_string_compact(), and blender_version_init().

◆ G

Global G

Defined in blender.cc

Definition at line 56 of file blender.cc.

◆ g_atexit

◆ U