146 const ListBase *region_list = (v3d ==
area->spacedata.first) ? &
area->regionbase :
154 rv3d = region->regiondata;
156 region_unlock = region;
158 region_unlock_user = region;
166 if (region_unlock_user) {
167 *r_region = region_unlock_user;
172 *r_region = region_unlock;
255 for (region =
area->regionbase.first; region; region = region->
next) {
487 return GS(local_id->
name);
513 const char **
UNUSED(r_tooltip))
521 const char **
UNUSED(r_tooltip))
529 const char **
UNUSED(r_tooltip))
537 const char **r_tooltip)
542 *r_tooltip =
TIP_(
"Create object instance from object-data");
552 const char **
UNUSED(r_tooltip))
559 return (
ELEM(drag->
icon, 0, ICON_FILE_IMAGE, ICON_FILE_MOVIE));
580 const char **r_tooltip)
596 const char **r_tooltip)
618 const char **
UNUSED(r_tooltip))
660 else if (drag->
path[0]) {
693 "OBJECT_OT_add_named",
698 "OBJECT_OT_drop_named_material",
703 "VIEW3D_OT_background_image_add",
708 "OBJECT_OT_drop_named_image",
713 "OBJECT_OT_volume_import",
718 "OBJECT_OT_collection_instance_add",
723 "OBJECT_OT_data_instance_add",
812 new->render_engine =
NULL;
814 new->smooth_timer =
NULL;
1000 switch (wmn->
data) {
1011 switch (wmn->
data) {
1047 #ifdef WITH_XR_OPENXR
1048 ED_view3d_xr_shading_update(
G_MAIN->wm.first, v3d,
scene);
1067 switch (wmn->
data) {
1128 .user_data = region,
1132 for (
int i = 0; i <
ARRAY_SIZE(type_array); i++) {
1133 msg_key_params.
ptr.
type = type_array[i];
1142 mbus, RenderSettings, resolution_x, &msg_sub_value_region_tag_redraw);
1144 mbus, RenderSettings, resolution_y, &msg_sub_value_region_tag_redraw);
1146 mbus, RenderSettings, pixel_aspect_x, &msg_sub_value_region_tag_redraw);
1148 mbus, RenderSettings, pixel_aspect_y, &msg_sub_value_region_tag_redraw);
1151 mbus, RenderSettings, use_border, &msg_sub_value_region_tag_redraw);
1160 if (obact !=
NULL) {
1161 switch (obact->
mode) {
1221 switch (wmn->
data) {
1296 .user_data = region,
1300 for (
int i = 0; i <
ARRAY_SIZE(type_array); i++) {
1301 msg_key_params.
ptr.
type = type_array[i];
1319 const char *category_override)
1323 const char *contexts_base[4] = {
NULL};
1326 const char **contexts = &contexts_base[1];
1410 if (category_override !=
NULL) {
1432 switch (wmn->
data) {
1446 switch (wmn->
data) {
1465 switch (wmn->
data) {
1479 switch (wmn->
data) {
1556 switch (wmn->
data) {
1565 switch (wmn->
data) {
1575 switch (wmn->
data) {
1614 if (view_layer->
basact) {
1640 if (view_layer->
basact) {
1662 bool is_local =
false;
1668 for (v3d = (
View3D *)slink; v3d; v3d = v3d->
localvd, is_local =
true) {
1673 ListBase *regionbase = (slink ==
area->spacedata.first) ? &
area->regionbase :
1675 for (region = regionbase->
first; region; region = region->
next) {
1688 if (is_local ==
false) {
1693 if (new_id ==
NULL) {
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
void CTX_data_dir_set(bContextDataResult *result, const char **dir)
bool CTX_data_equals(const char *member, const char *str)
void CTX_data_pointer_set(bContextDataResult *result, struct ID *id, StructRNA *type, void *data)
void CTX_data_id_pointer_set(bContextDataResult *result, struct ID *id)
bool CTX_data_dir(const char *member)
@ CTX_MODE_WEIGHT_GPENCIL
@ CTX_MODE_VERTEX_GPENCIL
@ CTX_MODE_SCULPT_GPENCIL
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct View3D * CTX_wm_view3d(const bContext *C)
const char * CTX_data_mode_string(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct RegionView3D * CTX_wm_region_view3d(const bContext *C)
enum eContextObjectMode CTX_data_mode_enum(const bContext *C)
void IDP_FreeProperty(struct IDProperty *prop)
struct IDProperty * IDP_CopyProperty(const struct IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
General operations, lookup, etc. for blender objects.
struct Depsgraph * BKE_scene_get_depsgraph(const struct Scene *scene, const struct ViewLayer *view_layer)
bool BKE_scene_uses_blender_eevee(const struct Scene *scene)
void BKE_screen_view3d_sync(struct View3D *v3d, struct Scene *scene)
struct ARegion * BKE_area_find_region_active_win(struct ScrArea *area)
void BKE_spacetype_register(struct SpaceType *st)
struct SpaceType * BKE_spacetype_from_id(int spaceid)
struct ARegionType * BKE_regiontype_from_id(const struct SpaceType *st, int regionid)
void BLI_addhead(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define BLI_ASSERT_ZERO_M4(m)
void zero_m4(float m[4][4])
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
#define ARRAY_SET_ITEMS(...)
#define BPy_BEGIN_ALLOW_THREADS
#define BPy_END_ALLOW_THREADS
struct Depsgraph Depsgraph
#define DNA_struct_default_alloc(struct_name)
Object is a sort of wrapper for general info.
#define OB_DATA_SUPPORT_ID(_id_type)
#define OBEDIT_FROM_VIEW_LAYER(view_layer)
#define OBACT(_view_layer)
@ RGN_FLAG_HIDDEN_BY_USER
@ V3D_SHADING_BACKGROUND_WORLD
#define RV3D_GPULIGHT_UPDATE
#define V3D_XR_SESSION_MIRROR
@ V3D_RUNTIME_XR_SESSION_ROOT
#define V3D_HIDE_OVERLAYS
#define V3D_LOCAL_COLLECTIONS
void ED_render_view3d_update(struct Depsgraph *depsgraph, struct wmWindow *window, struct ScrArea *area, const bool updated)
void ED_region_header(const struct bContext *C, struct ARegion *region)
void ED_region_tag_redraw_cursor(struct ARegion *region)
void ED_region_do_msg_notify_tag_redraw(struct bContext *C, struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)
void ED_area_do_mgs_subscribe_for_tool_ui(const struct wmRegionMessageSubscribeParams *params)
bool ED_region_overlap_isect_any_xy(const ScrArea *area, const int event_xy[2])
int ED_region_generic_tools_region_snap_size(const struct ARegion *region, int size, int axis)
void ED_region_generic_tools_region_message_subscribe(const struct wmRegionMessageSubscribeParams *params)
void ED_region_panels_ex(const struct bContext *C, struct ARegion *region, const char *contexts[])
void ED_region_panels_draw(const struct bContext *C, struct ARegion *region)
void ED_area_do_mgs_subscribe_for_tool_header(const struct wmRegionMessageSubscribeParams *params)
struct ARegionType * ED_area_type_hud(int space_type)
void ED_area_tag_redraw_regiontype(ScrArea *area, int type)
void ED_region_panels_init(struct wmWindowManager *wm, struct ARegion *region)
void ED_region_tag_redraw(struct ARegion *region)
void ED_region_header_init(struct ARegion *region)
void ED_area_tag_refresh(ScrArea *area)
void ED_region_panels_layout_ex(const struct bContext *C, struct ARegion *region, struct ListBase *paneltypes, const char *contexts[], const char *category_override)
#define ED_view3d_clear_mats_rv3d(rv3d)
bool ED_view3d_is_object_under_cursor(struct bContext *C, const int mval[2])
void ED_view3d_clipping_local(struct RegionView3D *rv3d, const float mat[4][4])
#define ED_view3d_check_mats_rv3d(rv3d)
struct Object * ED_view3d_give_object_under_cursor(struct bContext *C, const int mval[2])
#define GPU_matrix_mul(x)
Read Guarded memory(de)allocation.
StructRNA RNA_View3DShading
StructRNA RNA_View3DOverlay
StructRNA RNA_UnitSettings
#define UI_SIDEBAR_PANEL_WIDTH
@ WM_JOB_TYPE_RENDER_PREVIEW
#define ND_GPENCIL_EDITMODE
#define ND_RENDER_OPTIONS
#define ND_XR_DATA_CHANGED
#define NS_VIEW3D_SHADING
#define ND_DRAW_RENDER_VIEWPORT
const Depsgraph * depsgraph
void RE_engine_free(RenderEngine *engine)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
bool active
all scheduled work for the GPU.
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
void RNA_enum_set_identifier(bContext *C, PointerRNA *ptr, const char *name, const char *id)
void RNA_struct_property_unset(PointerRNA *ptr, const char *identifier)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
static void view3d_main_region_init(wmWindowManager *wm, ARegion *region)
static bool view3d_ima_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event, const char **UNUSED(r_tooltip))
static SpaceLink * view3d_duplicate(SpaceLink *sl)
static int view3d_context(const bContext *C, const char *member, bContextDataResult *result)
void ED_view3d_init_mats_rv3d(struct Object *ob, struct RegionView3D *rv3d)
static void view3d_free(SpaceLink *sl)
static void space_view3d_listener(const wmSpaceTypeListenerParams *params)
static bool view3d_volume_drop_poll(bContext *UNUSED(C), wmDrag *drag, const wmEvent *UNUSED(event), const char **UNUSED(r_tooltip))
static SpaceLink * view3d_create(const ScrArea *UNUSED(area), const Scene *scene)
static bool view3d_ima_bg_is_camera_view(bContext *C)
bool ED_view3d_context_user_region(bContext *C, View3D **r_v3d, ARegion **r_region)
static void view3d_collection_drop_copy(wmDrag *drag, wmDropBox *drop)
static void view3d_main_region_listener(const wmRegionListenerParams *params)
static void view3d_widgets(void)
void ED_view3d_stop_render_preview(wmWindowManager *wm, ARegion *region)
static void view3d_header_region_draw(const bContext *C, ARegion *region)
static void view3d_id_drop_copy_with_type(wmDrag *drag, wmDropBox *drop)
static void view3d_tools_region_draw(const bContext *C, ARegion *region)
static void view3d_header_region_init(wmWindowManager *wm, ARegion *region)
static void view3d_main_region_exit(wmWindowManager *wm, ARegion *region)
static bool view3d_ima_empty_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event, const char **r_tooltip)
static void view3d_lightcache_update(bContext *C)
static bool view3d_collection_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event, const char **UNUSED(r_tooltip))
static void view3d_header_region_message_subscribe(const wmRegionMessageSubscribeParams *params)
static void view3d_main_region_message_subscribe(const wmRegionMessageSubscribeParams *params)
static void view3d_buttons_region_layout(const bContext *C, ARegion *region)
static void view3d_init(wmWindowManager *UNUSED(wm), ScrArea *UNUSED(area))
static void space_view3d_refresh(const bContext *C, ScrArea *UNUSED(area))
static void view3d_id_remap(ScrArea *area, SpaceLink *slink, ID *old_id, ID *new_id)
static void view3d_tools_region_init(wmWindowManager *wm, ARegion *region)
static bool view3d_drop_in_main_region_poll(bContext *C, const wmEvent *event)
const char * view3d_context_dir[]
void ED_spacetype_view3d(void)
static bool view3d_object_data_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event, const char **r_tooltip)
static void view3d_id_drop_copy(wmDrag *drag, wmDropBox *drop)
static void view3d_main_region_cursor(wmWindow *win, ScrArea *area, ARegion *region)
static void view3d_id_path_drop_copy(wmDrag *drag, wmDropBox *drop)
static void view3d_buttons_region_listener(const wmRegionListenerParams *params)
static bool view3d_ima_bg_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event, const char **r_tooltip)
static void view3d_main_region_free(ARegion *region)
static void view3d_ob_drop_copy(wmDrag *drag, wmDropBox *drop)
static bool view3d_drop_id_in_main_region_poll(bContext *C, wmDrag *drag, const wmEvent *event, ID_Type id_type)
static bool view3d_ob_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event, const char **UNUSED(r_tooltip))
static bool view3d_mat_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event, const char **UNUSED(r_tooltip))
void ED_view3d_buttons_region_layout_ex(const bContext *C, ARegion *region, const char *category_override)
static void view3d_header_region_listener(const wmRegionListenerParams *params)
RegionView3D * ED_view3d_context_rv3d(bContext *C)
static void * view3d_main_region_duplicate(void *poin)
static void view3d_buttons_region_init(wmWindowManager *wm, ARegion *region)
static void view3d_dropboxes(void)
void ED_view3d_shade_update(Main *bmain, View3D *v3d, ScrArea *area)
bool ED_view3d_area_user_region(const ScrArea *area, const View3D *v3d, ARegion **r_region)
void ED_view3d_init_mats_rv3d_gl(struct Object *ob, struct RegionView3D *rv3d)
static ID_Type view3d_drop_id_in_main_region_poll_get_id_type(bContext *C, wmDrag *drag, const wmEvent *event)
void(* draw)(const struct bContext *C, struct ARegion *region)
void(* exit)(struct wmWindowManager *wm, struct ARegion *region)
void(* message_subscribe)(const wmRegionMessageSubscribeParams *params)
void(* cursor)(struct wmWindow *win, struct ScrArea *area, struct ARegion *region)
int(* snap_size)(const struct ARegion *region, int size, int axis)
void(* listener)(const wmRegionListenerParams *params)
void(* free)(struct ARegion *)
void *(* duplicate)(void *poin)
void(* layout)(const struct bContext *C, struct ARegion *region)
void(* init)(struct wmWindowManager *wm, struct ARegion *region)
struct wmGizmoMap * gizmo_map
struct ARegionType * type
struct RenderEngine * render_engine
struct SmoothView3DStore * sms
struct RegionView3D * localvd
struct ViewDepths * depths
struct LightCache * light_cache_data
struct SpaceLink *(* duplicate)(struct SpaceLink *sl)
void(* keymap)(struct wmKeyConfig *keyconf)
void(* operatortypes)(void)
void(* free)(struct SpaceLink *sl)
struct SpaceLink *(* create)(const struct ScrArea *area, const struct Scene *scene)
void(* refresh)(const struct bContext *C, struct ScrArea *area)
void(* listener)(const wmSpaceTypeListenerParams *params)
void(* init)(struct wmWindowManager *wm, struct ScrArea *area)
bContextDataCallback context
void(* id_remap)(struct ScrArea *area, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id)
char name[BKE_ST_MAXNAME]
void * properties_storage
unsigned short local_collections_uuid
struct Object * ob_center
struct wmKeyConfig * defaultconf
void view3d_main_region_draw(const bContext *C, ARegion *region)
void VIEW3D_GGT_armature_spline(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_camera(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_camera_view(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_empty_image(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_force_field(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_light_spot(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_light_area(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_light_target(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_navigate(wmGizmoGroupType *gzgt)
void VIEW3D_GT_navigate_rotate(wmGizmoType *gzt)
void VIEW3D_GGT_mesh_preselect_edgering(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_mesh_preselect_elem(wmGizmoGroupType *gzgt)
void VIEW3D_GGT_ruler(wmGizmoGroupType *gzgt)
void VIEW3D_GT_ruler_item(wmGizmoType *gzt)
void view3d_keymap(struct wmKeyConfig *keyconf)
void VIEW3D_GGT_placement(struct wmGizmoGroupType *gzgt)
void view3d_operatortypes(void)
void WM_cursor_set(wmWindow *win, int curs)
bool WM_cursor_set_from_tool(struct wmWindow *win, const ScrArea *area, const ARegion *region)
ID * WM_drag_get_local_ID_or_import_from_asset(const wmDrag *drag, int idcode)
void WM_drag_free_imported_drag_ID(struct Main *bmain, wmDrag *drag, wmDropBox *drop)
Free asset ID imported for cancelled drop.
wmDropBox * WM_dropbox_add(ListBase *lb, const char *idname, bool(*poll)(bContext *, wmDrag *, const wmEvent *, const char **), void(*copy)(wmDrag *, wmDropBox *), void(*cancel)(struct Main *, wmDrag *, wmDropBox *))
ID * WM_drag_get_local_ID(const wmDrag *drag, short idcode)
bool WM_drag_is_ID_type(const wmDrag *drag, int idcode)
ListBase * WM_dropboxmap_find(const char *idname, int spaceid, int regionid)
wmDragAsset * WM_drag_get_asset_data(const wmDrag *drag, int idcode)
void WM_draw_region_free(ARegion *region, bool hide)
wmEventHandler_Dropbox * WM_event_add_dropbox_handler(ListBase *handlers, ListBase *dropboxes)
wmEventHandler_Keymap * WM_event_add_keymap_handler(ListBase *handlers, wmKeyMap *keymap)
int WM_operator_name_call_ptr(bContext *C, wmOperatorType *ot, short context, PointerRNA *properties)
wmGizmoGroupTypeRef * WM_gizmogrouptype_append_and_link(wmGizmoMapType *gzmap_type, void(*wtfunc)(struct wmGizmoGroupType *))
wmGizmoGroupType * WM_gizmogrouptype_append(void(*wtfunc)(struct wmGizmoGroupType *))
wmGizmoMapType * WM_gizmomaptype_ensure(const struct wmGizmoMapType_Params *gzmap_params)
void WM_gizmomap_tag_refresh(wmGizmoMap *gzmap)
void WM_gizmotype_append(void(*gtfunc)(struct wmGizmoType *))
void WM_jobs_kill_type(struct wmWindowManager *wm, void *owner, int job_type)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
#define WM_msg_subscribe_rna_anon_prop(mbus, type_, prop_, value)
#define WM_msg_subscribe_rna_anon_type(mbus, type_, value)
void WM_msg_subscribe_rna_params(struct wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
void WM_operator_properties_free(PointerRNA *ptr)
ViewLayer * WM_window_get_active_view_layer(const wmWindow *win)