10#define DNA_DEPRECATED_ALLOW
13#include <fmt/format.h>
63# define N_(msgid) msgid
67#define U BLI_STATIC_ASSERT(false, "Global 'U' not allowed, only use arguments passed in!")
72#define USER_VERSION_ATLEAST(ver, subver) MAIN_VERSION_FILE_ATLEAST(userdef, ver, subver)
73#define FROM_DEFAULT_V4_UCHAR(member) copy_v4_v4_uchar(btheme->member, U_theme_default.member)
398 style->paneltitle.points = 11.0f;
399 style->paneltitle.shadow = 3;
400 style->paneltitle.shadowalpha = 0.5f;
401 style->paneltitle.shadowcolor = 0.0f;
402 style->widget.points = 11.0f;
403 style->widget.shadow = 1;
404 style->widget.shadowalpha = 0.5f;
405 style->widget.shadowcolor = 0.0f;
406 style->tooltip.shadow = 1;
407 style->tooltip.points = 11.0f;
408 style->tooltip.shadowalpha = 0.5f;
409 style->tooltip.shadowcolor = 0.0f;
422#undef FROM_DEFAULT_V4_UCHAR
424#undef USER_VERSION_ATLEAST
428#define USER_LMOUSESELECT (1 << 14)
434 ACTIONMOUSE = 0x0005,
435 SELECTMOUSE = 0x0006,
436 EVT_TWEAK_A = 0x5005,
437 EVT_TWEAK_S = 0x5006,
463 if (
STREQ(kmi->
idname,
"GRAPH_OT_keyframe_jump")) {
486 EVT_TWEAK_L = 0x5002,
487 EVT_TWEAK_M = 0x5003,
488 EVT_TWEAK_R = 0x5004,
523 std::optional<blender::StringRef> asset_id = {};
524 std::optional<blender::StringRefNull> tool_id = {};
532 if (tool_asset_map.
contains(prop_val)) {
533 asset_id = tool_asset_map.
lookup(prop_val);
535 else if (tool_tool_map.
contains(prop_val)) {
536 tool_id = tool_tool_map.
lookup(prop_val);
540 else if (
STREQ(kmi->
idname,
"PAINT_OT_brush_select")) {
544 if (id_asset_map.
contains(prop_val)) {
545 asset_id = id_asset_map.
lookup(prop_val);
551 const std::string full_path = fmt::format(
"{}{}", asset_prefix, *asset_id);
573 std::optional<blender::StringRef> asset_id = {};
580 if (id_asset_map.
contains(prop_val)) {
581 asset_id = id_asset_map.
lookup(prop_val);
587 const std::string full_path = fmt::format(
"{}{}", asset_prefix, *asset_id);
608 if (kmid->add_item) {
616 if (kmid->remove_item) {
618 asset_prefix, tool_property, id_asset_map, kmid->remove_item);
626 "brushes/essentials_brushes-mesh_sculpt.blend/Brush/";
629 const auto tool_asset_map = []() {
631 map.
add_new(
"builtin_brush.Draw Sharp",
"Draw Sharp");
632 map.
add_new(
"builtin_brush.Clay",
"Clay");
633 map.
add_new(
"builtin_brush.Clay Strips",
"Clay Strips");
634 map.
add_new(
"builtin_brush.Clay Thumb",
"Clay Thumb");
635 map.
add_new(
"builtin_brush.Layer",
"Layer");
636 map.
add_new(
"builtin_brush.Inflate",
"Inflate/Deflate");
637 map.
add_new(
"builtin_brush.Blob",
"Blob");
638 map.
add_new(
"builtin_brush.Crease",
"Crease Polish");
639 map.
add_new(
"builtin_brush.Smooth",
"Smooth");
640 map.
add_new(
"builtin_brush.Flatten",
"Flatten/Contrast");
641 map.
add_new(
"builtin_brush.Fill",
"Fill/Deepen");
642 map.
add_new(
"builtin_brush.Scrape",
"Scrape/Fill");
643 map.
add_new(
"builtin_brush.Multi-plane Scrape",
"Scrape Multiplane");
644 map.
add_new(
"builtin_brush.Pinch",
"Pinch/Magnify");
645 map.
add_new(
"builtin_brush.Grab",
"Grab");
646 map.
add_new(
"builtin_brush.Elastic Deform",
"Elastic Grab");
647 map.
add_new(
"builtin_brush.Snake Hook",
"Snake Hook");
648 map.
add_new(
"builtin_brush.Thumb",
"Thumb");
649 map.
add_new(
"builtin_brush.Pose",
"Pose");
650 map.
add_new(
"builtin_brush.Nudge",
"Nudge");
651 map.
add_new(
"builtin_brush.Rotate",
"Twist");
652 map.
add_new(
"builtin_brush.Slide Relax",
"Relax Slide");
653 map.
add_new(
"builtin_brush.Boundary",
"Boundary");
654 map.
add_new(
"builtin_brush.Cloth",
"Drag Cloth");
655 map.
add_new(
"builtin_brush.Simplify",
"Density");
656 map.
add_new(
"builtin_brush.Multires Displacement Eraser",
"Erase Multires Displacement");
657 map.
add_new(
"builtin_brush.Multires Displacement Smear",
"Smear Multires Displacement");
658 map.
add_new(
"builtin_brush.Smear",
"Smear");
663 const auto tool_tool_map = []() {
665 map.
add_new(
"builtin_brush.Draw",
"builtin.brush");
666 map.
add_new(
"builtin_brush.Paint",
"builtin_brush.paint");
667 map.
add_new(
"builtin_brush.Mask",
"builtin_brush.mask");
668 map.
add_new(
"builtin_brush.Draw Face Sets",
"builtin_brush.draw_face_sets");
672 const auto id_asset_map = []() {
684 map.
add_new(SCULPT_BRUSH_TYPE_FLATTEN,
"Flatten/Contrast");
685 map.
add_new(SCULPT_BRUSH_TYPE_FILL,
"Fill/Deepen");
686 map.
add_new(SCULPT_BRUSH_TYPE_SCRAPE,
"Scrape/Fill");
710 keymap, asset_prefix, tool_property, tool_tool_map, tool_asset_map, id_asset_map);
716 "brushes/essentials_brushes-mesh_vertex.blend/Brush/";
719 const auto tool_tool_map = []() {
721 map.
add_new(
"builtin_brush.Draw",
"builtin.brush");
722 map.
add_new(
"builtin_brush.Blur",
"builtin_brush.blur");
723 map.
add_new(
"builtin_brush.Average",
"builtin_brush.average");
724 map.
add_new(
"builtin_brush.Smear",
"builtin_brush.smear");
728 const auto id_asset_map = []() {
743 "brushes/essentials_brushes-mesh_weight.blend/Brush/";
746 const auto tool_tool_map = []() {
748 map.
add_new(
"builtin_brush.Draw",
"builtin.brush");
749 map.
add_new(
"builtin_brush.Blur",
"builtin_brush.blur");
750 map.
add_new(
"builtin_brush.Average",
"builtin_brush.average");
751 map.
add_new(
"builtin_brush.Smear",
"builtin_brush.smear");
755 const auto asset_id_map = []() {
770 "brushes/essentials_brushes-mesh_texture.blend/Brush/";
773 const auto tool_tool_map = []() {
775 map.
add_new(
"builtin_brush.Draw",
"builtin.brush");
776 map.
add_new(
"builtin_brush.Soften",
"builtin_brush.soften");
777 map.
add_new(
"builtin_brush.Smear",
"builtin_brush.smear");
778 map.
add_new(
"builtin_brush.Clone",
"builtin_brush.clone");
779 map.
add_new(
"builtin_brush.Fill",
"builtin_brush.fill");
780 map.
add_new(
"builtin_brush.Mask",
"builtin_brush.mask");
784 const auto id_asset_map = []() {
801#define USER_VERSION_ATLEAST(ver, subver) MAIN_VERSION_FILE_ATLEAST(userdef, ver, subver)
916 if (
STREQ(km->idname,
"Armature_Sketch")) {
917 STRNCPY(km->idname,
"Armature Sketch");
919 else if (
STREQ(km->idname,
"View3D")) {
920 STRNCPY(km->idname,
"3D View");
922 else if (
STREQ(km->idname,
"View3D Generic")) {
923 STRNCPY(km->idname,
"3D View Generic");
925 else if (
STREQ(km->idname,
"EditMesh")) {
928 else if (
STREQ(km->idname,
"UVEdit")) {
929 STRNCPY(km->idname,
"UV Editor");
931 else if (
STREQ(km->idname,
"Animation_Channels")) {
932 STRNCPY(km->idname,
"Animation Channels");
934 else if (
STREQ(km->idname,
"GraphEdit Keys")) {
935 STRNCPY(km->idname,
"Graph Editor");
937 else if (
STREQ(km->idname,
"GraphEdit Generic")) {
938 STRNCPY(km->idname,
"Graph Editor Generic");
940 else if (
STREQ(km->idname,
"Action_Keys")) {
941 STRNCPY(km->idname,
"Dopesheet");
943 else if (
STREQ(km->idname,
"NLA Data")) {
944 STRNCPY(km->idname,
"NLA Editor");
946 else if (
STREQ(km->idname,
"Node Generic")) {
947 STRNCPY(km->idname,
"Node Editor");
949 else if (
STREQ(km->idname,
"Logic Generic")) {
950 STRNCPY(km->idname,
"Logic Editor");
952 else if (
STREQ(km->idname,
"File")) {
953 STRNCPY(km->idname,
"File Browser");
955 else if (
STREQ(km->idname,
"FileMain")) {
956 STRNCPY(km->idname,
"File Browser Main");
958 else if (
STREQ(km->idname,
"FileButtons")) {
959 STRNCPY(km->idname,
"File Browser Buttons");
961 else if (
STREQ(km->idname,
"Buttons Generic")) {
962 STRNCPY(km->idname,
"Property Editor");
1066 userdef->gpu_viewport_quality = 0.6f;
1089 if (kmdi->remove_item) {
1092 if (kmdi->add_item) {
1185 const float GPU_VIEWPORT_QUALITY_FXAA = 0.10f;
1186 const float GPU_VIEWPORT_QUALITY_TAA8 = 0.25f;
1187 const float GPU_VIEWPORT_QUALITY_TAA16 = 0.6f;
1188 const float GPU_VIEWPORT_QUALITY_TAA32 = 0.8f;
1190 if (userdef->gpu_viewport_quality <= GPU_VIEWPORT_QUALITY_FXAA) {
1193 else if (userdef->gpu_viewport_quality <= GPU_VIEWPORT_QUALITY_TAA8) {
1196 else if (userdef->gpu_viewport_quality <= GPU_VIEWPORT_QUALITY_TAA16) {
1199 else if (userdef->gpu_viewport_quality <= GPU_VIEWPORT_QUALITY_TAA32) {
1247 params.check_item =
true;
1248 params.check_diff_item_add =
true;
1305 const char *replace_table[][2] = {
1306 {
"blender",
"Blender"},
1307 {
"blender_27x",
"Blender_27x"},
1308 {
"industry_compatible",
"Industry_Compatible"},
1310 const int replace_table_len =
ARRAY_SIZE(replace_table);
1316 kpt->idname,
sizeof(kpt->idname), replace_table, replace_table_len);
1354 if (
STREQ(asset_library->name,
"Default")) {
1363 const int default_title_points = 11;
1364 style->paneltitle.points = default_title_points;
1365 style->grouplabel.points = default_title_points;
1409 if (userdef->pythondir_legacy[0]) {
1411 "Versioning user script path");
1445 userdef->
uiflag &= ~(1 << 23);
1458 style->paneltitle.character_weight = 400;
1459 style->grouplabel.character_weight = 400;
1460 style->widget.character_weight = 400;
1479 if (
STREQ(km->idname,
"NLA Channels")) {
1480 STRNCPY(km->idname,
"NLA Tracks");
1510 const char *addon_modules[] = {
1513 "io_import_images_as_planes",
1538 userdef,
"VIEW3D_AST_brush_sculpt",
"Brushes/Mesh Sculpt/Cloth");
1540 userdef,
"VIEW3D_AST_brush_sculpt",
"Brushes/Mesh Sculpt/General");
1542 userdef,
"VIEW3D_AST_brush_sculpt",
"Brushes/Mesh Sculpt/Paint");
1547 style->tooltip.points = 11.0f;
1548 style->tooltip.character_weight = 400;
1549 style->tooltip.shadow = 0;
1550 style->tooltip.shady = -1;
1551 style->tooltip.shadowalpha = 0.5f;
1552 style->tooltip.shadowcolor = 0.0f;
1563 userdef,
"VIEW3D_AST_brush_gpencil_paint",
"Brushes/Grease Pencil Draw/Draw");
1565 userdef,
"VIEW3D_AST_brush_gpencil_paint",
"Brushes/Grease Pencil Draw/Erase");
1567 userdef,
"VIEW3D_AST_brush_gpencil_paint",
"Brushes/Grease Pencil Draw/Utilities");
1570 userdef,
"VIEW3D_AST_brush_gpencil_sculpt",
"Brushes/Grease Pencil Sculpt/Contrast");
1572 userdef,
"VIEW3D_AST_brush_gpencil_sculpt",
"Brushes/Grease Pencil Sculpt/Transform");
1574 userdef,
"VIEW3D_AST_brush_gpencil_sculpt",
"Brushes/Grease Pencil Sculpt/Utilities");
1579 if (
STREQ(
"Sculpt", keymap->idname)) {
1582 else if (
STREQ(
"Vertex Paint", keymap->idname)) {
1585 else if (
STREQ(
"Weight Paint", keymap->idname)) {
1588 else if (
STREQ(
"Image Paint", keymap->idname)) {
1604 {
"SequencerCommon",
"Video Sequence Editor"},
1605 {
"SequencerPreview",
"Preview"},
1607 {
"Sequencer Tool: Cursor",
"Preview Tool: Cursor"},
1608 {
"Sequencer Tool: Sample",
"Preview Tool: Sample"},
1609 {
"Sequencer Tool: Move",
"Preview Tool: Move"},
1610 {
"Sequencer Tool: Rotate",
"Preview Tool: Rotate"},
1611 {
"Sequencer Tool: Scale",
"Preview Tool: Scale"},
1613 {
"Sequencer Timeline Tool: Select Box",
"Sequencer Tool: Select Box"},
1614 {
"Sequencer Timeline Tool: Select Box (fallback)",
1615 "Sequencer Tool: Select Box (fallback)"},
1617 {
"Sequencer Preview Tool: Tweak",
"Preview Tool: Tweak"},
1618 {
"Sequencer Preview Tool: Tweak (fallback)",
"Preview Tool: Tweak (fallback)"},
1619 {
"Sequencer Preview Tool: Select Box",
"Preview Tool: Select Box"},
1620 {
"Sequencer Preview Tool: Select Box (fallback)",
"Preview Tool: Select Box (fallback)"},
1624 std::string old_name(keymap->idname);
1625 if (
const std::string *new_name = keymap_renames.
lookup_ptr(old_name)) {
1626 STRNCPY(keymap->idname, new_name->c_str());
1650 if (kmdi->remove_item) {
1653 if (kmdi->add_item) {
1686 userdef,
"IMAGE_AST_brush_paint",
"Brushes/Mesh Texture Paint/Basic");
1688 userdef,
"IMAGE_AST_brush_paint",
"Brushes/Mesh Texture Paint/Erase");
1690 userdef,
"IMAGE_AST_brush_paint",
"Brushes/Mesh Texture Paint/Pixel Art");
1692 userdef,
"IMAGE_AST_brush_paint",
"Brushes/Mesh Texture Paint/Utilities");
1695 userdef,
"VIEW3D_AST_brush_texture_paint",
"Brushes/Mesh Texture Paint/Basic");
1697 userdef,
"VIEW3D_AST_brush_texture_paint",
"Brushes/Mesh Texture Paint/Erase");
1699 userdef,
"VIEW3D_AST_brush_texture_paint",
"Brushes/Mesh Texture Paint/Pixel Art");
1701 userdef,
"VIEW3D_AST_brush_texture_paint",
"Brushes/Mesh Texture Paint/Utilities");
1731 userdef,
"NODE_AST_compositor",
"Camera & Lens Effects");
1733 userdef,
"NODE_AST_compositor",
"Creative");
1735 userdef,
"NODE_AST_compositor",
"Utilities");
1748#undef USER_VERSION_ATLEAST
1761#ifdef WITH_EXPERIMENTAL_FEATURES
1770#undef USER_LMOUSESELECT
struct bAddon * BKE_addon_ensure(struct ListBase *addon_list, const char *module)
bool BKE_addon_remove_safe(struct ListBase *addon_list, const char *module)
bool BKE_blender_version_is_alpha(void)
void BKE_colorband_init(ColorBand *coba, bool rangetype)
IDProperty * IDP_GetPropertyFromGroup(const IDProperty *prop, blender::StringRef name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#define IDP_int_get(prop)
#define IDP_string_get(prop)
bool IDP_AddToGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
void BKE_keyconfig_pref_filter_items(struct UserDef *userdef, const struct wmKeyConfigFilterItemParams *params, bool(*filter_fn)(struct wmKeyMapItem *kmi, void *user_data), void *user_data)
void BKE_keyconfig_pref_set_select_mouse(struct UserDef *userdef, int value, bool override)
#define WM_KEY_CONFIG_FILTER_ITEM_ALL
void BKE_preferences_asset_library_default_add(struct UserDef *userdef) ATTR_NONNULL()
void BKE_preferences_extension_repo_remove(UserDef *userdef, bUserExtensionRepo *repo)
bUserExtensionRepo * BKE_preferences_extension_repo_add_default_user(UserDef *userdef)
#define BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME
void BKE_preferences_asset_library_name_set(struct UserDef *userdef, struct bUserAssetLibrary *library, const char *name) ATTR_NONNULL()
bUserExtensionRepo * BKE_preferences_extension_repo_add_default_system(UserDef *userdef)
bUserExtensionRepo * BKE_preferences_extension_repo_add_default_remote(UserDef *userdef)
bool BKE_preferences_asset_shelf_settings_ensure_catalog_path_enabled(UserDef *userdef, const char *shelf_idname, const char *catalog_path)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
void BLI_addhead(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE void copy_v4_fl4(float v[4], float x, float y, float z, float w)
MINLINE void copy_v4_v4_uchar(unsigned char r[4], const unsigned char a[4])
MINLINE void copy_v3_fl3(float v[3], float x, float y, float z)
char * STRNCPY(char(&dst)[N], const char *src)
#define STRNCPY_UTF8(dst, src)
bool BLI_string_replace_table_exact(char *string, size_t string_maxncpy, const char *replace_table[][2], int replace_table_len)
void BLI_uniquename(const struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t name_maxncpy) ATTR_NONNULL(1
#define ARRAY_SET_ITEMS(...)
#define MEMSET_STRUCT_AFTER(struct_var, value, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
external readfile function prototypes.
const bTheme U_theme_default
@ FCURVE_SMOOTH_CONT_ACCEL
@ ASSET_IMPORT_APPEND_REUSE
@ ASSET_LIBRARY_RELATIVE_PATH
@ ASSET_LIBRARY_ESSENTIALS
@ WPAINT_BRUSH_TYPE_AVERAGE
@ WPAINT_BRUSH_TYPE_SMEAR
@ SCULPT_BRUSH_TYPE_DRAW_SHARP
@ SCULPT_BRUSH_TYPE_THUMB
@ SCULPT_BRUSH_TYPE_BOUNDARY
@ SCULPT_BRUSH_TYPE_DISPLACEMENT_SMEAR
@ SCULPT_BRUSH_TYPE_DRAW_FACE_SETS
@ SCULPT_BRUSH_TYPE_NUDGE
@ SCULPT_BRUSH_TYPE_CLOTH
@ SCULPT_BRUSH_TYPE_PINCH
@ SCULPT_BRUSH_TYPE_SMEAR
@ SCULPT_BRUSH_TYPE_CLAY_THUMB
@ SCULPT_BRUSH_TYPE_MULTIPLANE_SCRAPE
@ SCULPT_BRUSH_TYPE_SIMPLIFY
@ SCULPT_BRUSH_TYPE_SNAKE_HOOK
@ SCULPT_BRUSH_TYPE_CREASE
@ SCULPT_BRUSH_TYPE_LAYER
@ SCULPT_BRUSH_TYPE_SLIDE_RELAX
@ SCULPT_BRUSH_TYPE_ELASTIC_DEFORM
@ SCULPT_BRUSH_TYPE_SMOOTH
@ SCULPT_BRUSH_TYPE_PAINT
@ SCULPT_BRUSH_TYPE_DISPLACEMENT_ERASER
@ SCULPT_BRUSH_TYPE_INFLATE
@ SCULPT_BRUSH_TYPE_ROTATE
@ SCULPT_BRUSH_TYPE_CLAY_STRIPS
@ IMAGE_PAINT_BRUSH_TYPE_MASK
@ IMAGE_PAINT_BRUSH_TYPE_FILL
@ IMAGE_PAINT_BRUSH_TYPE_DRAW
@ IMAGE_PAINT_BRUSH_TYPE_CLONE
@ IMAGE_PAINT_BRUSH_TYPE_SOFTEN
@ IMAGE_PAINT_BRUSH_TYPE_SMEAR
@ VPAINT_BRUSH_TYPE_AVERAGE
@ VPAINT_BRUSH_TYPE_SMEAR
@ SCE_DISPLAY_AA_SAMPLES_32
@ SCE_DISPLAY_AA_SAMPLES_8
@ SCE_DISPLAY_AA_SAMPLES_16
@ AUTOKEY_FLAG_INSERTNEEDED
@ MANUALKEY_FLAG_INSERTNEEDED
@ AUTOKEY_FLAG_ONLYKEYINGSET
@ USER_DOTRANSLATE_DEPRECATED
@ USER_AREA_CORNER_HANDLE
@ USER_FILTER_BRUSHES_BY_TOOL
@ USER_LOCK_CURSOR_ADJUST
@ USER_REGISTER_ALL_USERS
@ USER_SHOW_GIZMO_NAVIGATE
@ USER_NO_MULTITOUCH_GESTURES
@ USER_GPU_FLAG_OVERLAY_SMOOTH_WIRE
@ USER_SEQ_PROXY_SETUP_AUTOMATIC
@ USER_FLAG_NUMINPUT_ADVANCED
@ STATUSBAR_SHOW_EXTENSIONS_UPDATES
@ USER_ANIM_HIGH_QUALITY_DRAWING
@ USER_ANIM_SHOW_CHANNEL_GROUP_COLORS
@ USER_ALWAYS_SHOW_NUMBER_ARROWS
@ USER_RENDER_DISPLAY_WINDOW
@ NDOF_SHOW_GUIDE_ORBIT_CENTER
@ USER_ANIM_KEY_CHANNEL_SCALE
@ USER_ANIM_KEY_CHANNEL_ROTATION
@ USER_ANIM_KEY_CHANNEL_LOCATION
@ USER_ANIM_KEY_CHANNEL_CUSTOM_PROPERTIES
@ USER_TEXT_RENDER_SUBPIXELAA
@ USER_SHADER_COMPILE_SUBPROCESS
@ USER_SEQ_ED_CONNECT_STRIPS_BY_DEFAULT
@ USER_TEMP_SPACE_DISPLAY_WINDOW
Read Guarded memory(de)allocation.
const Value * lookup_ptr(const Key &key) const
const Value & lookup(const Key &key) const
void add_new(const Key &key, const Value &value)
bool contains(const Key &key) const
constexpr bool startswith(StringRef prefix) const
void * MEM_callocN(size_t len, const char *str)
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRef prop_name, int32_t value, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_INT, set its name and value.
unsigned char handle_vertex_size
unsigned char grid_levels
unsigned char face_front[4]
uiWidgetColors wcol_pulldown
uiWidgetColors wcol_numslider
uiWidgetColors wcol_list_item
uiWidgetColors wcol_progress
unsigned char panel_text[4]
uiWidgetColors wcol_menu_back
uiWidgetColors wcol_curve
uiWidgetColors wcol_menu_item
uiWidgetColors wcol_toggle
uiWidgetColors wcol_regular
uiWidgetColors wcol_tooltip
uiWidgetColors wcol_option
uiWidgetColors wcol_radio
uiWidgetColors wcol_scroll
uiWidgetColors wcol_pie_menu
uiWidgetColors wcol_toolbar_item
unsigned char panel_title[4]
struct WalkNavigation walk_navigation
float pressure_threshold_max
short key_insert_channels
float ndof_translation_sensitivity
ListBase script_directories
short playback_fps_samples
float view_rotate_sensitivity_trackball
short pie_animation_timeout
float view_rotate_sensitivity_turntable
UserDef_FileSpaceData file_space_data
UserDef_Experimental experimental
uint8_t network_connection_limit
struct ListBase user_keymaps
char drag_threshold_mouse
float gpencil_new_layer_col[4]
struct XrNavigation xr_navigation
short lookdev_sphere_size
char gizmo_size_navigate_v3d
short sequencer_proxy_setup
float ndof_rotation_sensitivity
struct ListBase user_keyconfig_prefs
char drag_threshold_tablet
short shader_compilation_method
struct ListBase extension_repos
struct SolidLight light_param[4]
char filebrowser_display_type
int sequencer_editor_flag
char preferences_display_type
UserDef_TempWinBounds stored_bounds
float collection_instance_empty_size
struct ListBase asset_libraries
struct ColorBand coba_weight
static void keymap_update_brushes_handle_add_item(const blender::StringRef asset_prefix, const blender::StringRef tool_property, const blender::Map< blender::StringRef, blender::StringRefNull > &tool_tool_map, const blender::Map< blender::StringRef, blender::StringRef > &tool_asset_map, const blender::Map< int, blender::StringRef > &id_asset_map, wmKeyMapItem *kmi)
static bool keymap_item_update_tweak_event(wmKeyMapItem *kmi, void *)
static void do_version_select_mouse(const UserDef *userdef, wmKeyMapItem *kmi)
static bool keymap_item_has_invalid_wm_context_data_path(wmKeyMapItem *kmi, void *)
void BLO_sanitize_experimental_features_userpref_blend(UserDef *userdef)
#define USER_VERSION_ATLEAST(ver, subver)
#define FROM_DEFAULT_V4_UCHAR(member)
#define USER_LMOUSESELECT
void blo_do_versions_userdef(UserDef *userdef)
static void keymap_update_brushes_handle_remove_item(const blender::StringRef asset_prefix, const blender::StringRef tool_property, const blender::Map< int, blender::StringRef > &id_asset_map, wmKeyMapItem *kmi)
static void do_version_keyframe_jump(wmKeyMapItem *kmi)
static void keymap_update_mesh_texture_paint_brushes(wmKeyMap *keymap)
static void keymap_update_mesh_weight_paint_brushes(wmKeyMap *keymap)
static void keymap_update_brushes(wmKeyMap *keymap, const blender::StringRef asset_prefix, const blender::StringRef tool_property, const blender::Map< blender::StringRef, blender::StringRefNull > &tool_tool_map, const blender::Map< blender::StringRef, blender::StringRef > &tool_asset_map, const blender::Map< int, blender::StringRef > &id_asset_map)
static void keymap_update_mesh_vertex_paint_brushes(wmKeyMap *keymap)
static void keymap_update_mesh_sculpt_brushes(wmKeyMap *keymap)
static void do_versions_theme(const UserDef *userdef, bTheme *btheme)
void WM_keymap_item_properties_reset(wmKeyMapItem *kmi, IDProperty *properties)