Blender  V2.93
Functions | Variables
space_view3d.c File Reference
#include <stdio.h>
#include <string.h>
#include "DNA_defaults.h"
#include "DNA_gpencil_types.h"
#include "DNA_lightprobe_types.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_global.h"
#include "BKE_icons.h"
#include "BKE_idprop.h"
#include "BKE_lattice.h"
#include "BKE_main.h"
#include "BKE_mball.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "BKE_workspace.h"
#include "ED_render.h"
#include "ED_screen.h"
#include "ED_space_api.h"
#include "ED_transform.h"
#include "GPU_matrix.h"
#include "DRW_engine.h"
#include "WM_api.h"
#include "WM_message.h"
#include "WM_toolsystem.h"
#include "WM_types.h"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "RNA_access.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "DEG_depsgraph.h"
#include "view3d_intern.h"

Go to the source code of this file.

Functions

RegionView3DED_view3d_context_rv3d (bContext *C)
 
bool ED_view3d_context_user_region (bContext *C, View3D **r_v3d, ARegion **r_region)
 
bool ED_view3d_area_user_region (const ScrArea *area, const View3D *v3d, ARegion **r_region)
 
void ED_view3d_init_mats_rv3d (struct Object *ob, struct RegionView3D *rv3d)
 
void ED_view3d_init_mats_rv3d_gl (struct Object *ob, struct RegionView3D *rv3d)
 
void ED_view3d_stop_render_preview (wmWindowManager *wm, ARegion *region)
 
void ED_view3d_shade_update (Main *bmain, View3D *v3d, ScrArea *area)
 
static SpaceLinkview3d_create (const ScrArea *UNUSED(area), const Scene *scene)
 
static void view3d_free (SpaceLink *sl)
 
static void view3d_init (wmWindowManager *UNUSED(wm), ScrArea *UNUSED(area))
 
static SpaceLinkview3d_duplicate (SpaceLink *sl)
 
static void view3d_main_region_init (wmWindowManager *wm, ARegion *region)
 
static void view3d_main_region_exit (wmWindowManager *wm, ARegion *region)
 
static bool view3d_drop_in_main_region_poll (bContext *C, const wmEvent *event)
 
static ID_Type view3d_drop_id_in_main_region_poll_get_id_type (bContext *C, wmDrag *drag, const wmEvent *event)
 
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_collection_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))
 
static bool view3d_object_data_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event, const char **r_tooltip)
 
static bool view3d_ima_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event, const char **UNUSED(r_tooltip))
 
static bool view3d_ima_bg_is_camera_view (bContext *C)
 
static bool view3d_ima_bg_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event, const char **r_tooltip)
 
static bool view3d_ima_empty_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event, const char **r_tooltip)
 
static bool view3d_volume_drop_poll (bContext *UNUSED(C), wmDrag *drag, const wmEvent *UNUSED(event), const char **UNUSED(r_tooltip))
 
static void view3d_ob_drop_copy (wmDrag *drag, wmDropBox *drop)
 
static void view3d_collection_drop_copy (wmDrag *drag, wmDropBox *drop)
 
static void view3d_id_drop_copy (wmDrag *drag, wmDropBox *drop)
 
static void view3d_id_drop_copy_with_type (wmDrag *drag, wmDropBox *drop)
 
static void view3d_id_path_drop_copy (wmDrag *drag, wmDropBox *drop)
 
static void view3d_lightcache_update (bContext *C)
 
static void view3d_dropboxes (void)
 
static void view3d_widgets (void)
 
static void view3d_main_region_free (ARegion *region)
 
static void * view3d_main_region_duplicate (void *poin)
 
static void view3d_main_region_listener (const wmRegionListenerParams *params)
 
static void view3d_main_region_message_subscribe (const wmRegionMessageSubscribeParams *params)
 
static void view3d_main_region_cursor (wmWindow *win, ScrArea *area, ARegion *region)
 
static void view3d_header_region_init (wmWindowManager *wm, ARegion *region)
 
static void view3d_header_region_draw (const bContext *C, ARegion *region)
 
static void view3d_header_region_listener (const wmRegionListenerParams *params)
 
static void view3d_header_region_message_subscribe (const wmRegionMessageSubscribeParams *params)
 
static void view3d_buttons_region_init (wmWindowManager *wm, ARegion *region)
 
void ED_view3d_buttons_region_layout_ex (const bContext *C, ARegion *region, const char *category_override)
 
static void view3d_buttons_region_layout (const bContext *C, ARegion *region)
 
static void view3d_buttons_region_listener (const wmRegionListenerParams *params)
 
static void view3d_tools_region_init (wmWindowManager *wm, ARegion *region)
 
static void view3d_tools_region_draw (const bContext *C, ARegion *region)
 
static void space_view3d_listener (const wmSpaceTypeListenerParams *params)
 
static void space_view3d_refresh (const bContext *C, ScrArea *UNUSED(area))
 
static int view3d_context (const bContext *C, const char *member, bContextDataResult *result)
 
static void view3d_id_remap (ScrArea *area, SpaceLink *slink, ID *old_id, ID *new_id)
 
void ED_spacetype_view3d (void)
 

Variables

const char * view3d_context_dir []
 

Function Documentation

◆ ED_spacetype_view3d()

void ED_spacetype_view3d ( void  )

Definition at line 1706 of file space_view3d.c.

References BKE_spacetype_register(), BKE_ST_MAXNAME, BLI_addhead(), SpaceType::context, SpaceType::create, ARegionType::cursor, ARegionType::draw, SpaceType::dropboxes, SpaceType::duplicate, ARegionType::duplicate, ED_area_do_mgs_subscribe_for_tool_header(), ED_area_do_mgs_subscribe_for_tool_ui(), ED_area_type_hud(), ED_KEYMAP_FRAMES, ED_KEYMAP_GIZMO, ED_KEYMAP_GPENCIL, ED_KEYMAP_HEADER, ED_KEYMAP_TOOL, ED_KEYMAP_UI, ED_KEYMAP_VIEW2D, ED_region_generic_tools_region_message_subscribe(), ED_region_generic_tools_region_snap_size(), ED_region_panels_draw(), ARegionType::exit, ARegionType::free, SpaceType::free, SpaceType::gizmos, HEADERY, SpaceType::id_remap, ARegionType::init, SpaceType::init, SpaceType::keymap, ARegionType::keymapflag, ARegionType::layout, ARegionType::listener, SpaceType::listener, ARegionType::lock, MEM_callocN, ARegionType::message_subscribe, SpaceType::name, SpaceType::operatortypes, ARegionType::prefsizex, ARegionType::prefsizey, SpaceType::refresh, ARegionType::regionid, SpaceType::regiontypes, RGN_TYPE_HEADER, RGN_TYPE_TOOL_HEADER, RGN_TYPE_TOOLS, RGN_TYPE_UI, RGN_TYPE_WINDOW, ARegionType::snap_size, SPACE_VIEW3D, space_view3d_listener(), space_view3d_refresh(), SpaceType::spaceid, UI_SIDEBAR_PANEL_WIDTH, view3d_buttons_region_init(), view3d_buttons_region_layout(), view3d_buttons_region_listener(), view3d_buttons_register(), view3d_context(), view3d_create(), view3d_dropboxes(), view3d_duplicate(), view3d_free(), view3d_header_region_draw(), view3d_header_region_init(), view3d_header_region_listener(), view3d_header_region_message_subscribe(), view3d_id_remap(), view3d_init(), view3d_keymap(), view3d_main_region_cursor(), view3d_main_region_draw(), view3d_main_region_duplicate(), view3d_main_region_exit(), view3d_main_region_free(), view3d_main_region_init(), view3d_main_region_listener(), view3d_main_region_message_subscribe(), view3d_operatortypes(), view3d_tools_region_draw(), view3d_tools_region_init(), and view3d_widgets().

Referenced by ED_spacetypes_init().

◆ ED_view3d_area_user_region()

bool ED_view3d_area_user_region ( const ScrArea area,
const View3D v3d,
ARegion **  r_region 
)

Similar to ED_view3d_context_user_region() but does not use context. Always performs a lookup. Also works if v3d is not the active space.

Definition at line 141 of file space_view3d.c.

References blender::compositor::area(), BLI_assert, ELEM, LISTBASE_FOREACH, NULL, RegionView3D::persp, View3D::regionbase, RGN_TYPE_WINDOW, RV3D_CAMOB, RV3D_LOCK_ROTATION, RV3D_PERSP, SPACE_VIEW3D, View3D::spacetype, and RegionView3D::viewlock.

Referenced by ED_view3d_context_user_region().

◆ ED_view3d_buttons_region_layout_ex()

void ED_view3d_buttons_region_layout_ex ( const bContext C,
ARegion region,
const char *  category_override 
)

◆ ED_view3d_context_rv3d()

RegionView3D* ED_view3d_context_rv3d ( bContext C)

◆ ED_view3d_context_user_region()

bool ED_view3d_context_user_region ( bContext C,
View3D **  r_v3d,
ARegion **  r_region 
)

◆ ED_view3d_init_mats_rv3d()

void ED_view3d_init_mats_rv3d ( struct Object ob,
struct RegionView3D rv3d 
)

◆ ED_view3d_init_mats_rv3d_gl()

void ED_view3d_init_mats_rv3d_gl ( struct Object ob,
struct RegionView3D rv3d 
)

Definition at line 200 of file space_view3d.c.

References ED_view3d_init_mats_rv3d(), GPU_matrix_mul, and Object::obmat.

◆ ED_view3d_shade_update()

void ED_view3d_shade_update ( Main bmain,
View3D v3d,
ScrArea area 
)

◆ ED_view3d_stop_render_preview()

void ED_view3d_stop_render_preview ( wmWindowManager wm,
ARegion region 
)

◆ space_view3d_listener()

static void space_view3d_listener ( const wmSpaceTypeListenerParams params)
static

◆ space_view3d_refresh()

static void space_view3d_refresh ( const bContext C,
ScrArea UNUSEDarea 
)
static

◆ view3d_buttons_region_init()

static void view3d_buttons_region_init ( wmWindowManager wm,
ARegion region 
)
static

◆ view3d_buttons_region_layout()

static void view3d_buttons_region_layout ( const bContext C,
ARegion region 
)
static

Definition at line 1419 of file space_view3d.c.

References C, ED_view3d_buttons_region_layout_ex(), and NULL.

Referenced by ED_spacetype_view3d().

◆ view3d_buttons_region_listener()

static void view3d_buttons_region_listener ( const wmRegionListenerParams params)
static

◆ view3d_collection_drop_copy()

static void view3d_collection_drop_copy ( wmDrag drag,
wmDropBox drop 
)
static

◆ view3d_collection_drop_poll()

static bool view3d_collection_drop_poll ( bContext C,
wmDrag drag,
const wmEvent event,
const char **  UNUSEDr_tooltip 
)
static

Definition at line 518 of file space_view3d.c.

References C, ID_GR, and view3d_drop_id_in_main_region_poll().

Referenced by view3d_dropboxes().

◆ view3d_context()

static int view3d_context ( const bContext C,
const char *  member,
bContextDataResult result 
)
static

◆ view3d_create()

static SpaceLink* view3d_create ( const ScrArea UNUSEDarea,
const Scene scene 
)
static

◆ view3d_drop_id_in_main_region_poll()

static bool view3d_drop_id_in_main_region_poll ( bContext C,
wmDrag drag,
const wmEvent event,
ID_Type  id_type 
)
static

◆ view3d_drop_id_in_main_region_poll_get_id_type()

static ID_Type view3d_drop_id_in_main_region_poll_get_id_type ( bContext C,
wmDrag drag,
const wmEvent event 
)
static

◆ view3d_drop_in_main_region_poll()

static bool view3d_drop_in_main_region_poll ( bContext C,
const wmEvent event 
)
static

◆ view3d_dropboxes()

static void view3d_dropboxes ( void  )
static

◆ view3d_duplicate()

static SpaceLink* view3d_duplicate ( SpaceLink sl)
static

◆ view3d_free()

static void view3d_free ( SpaceLink sl)
static

◆ view3d_header_region_draw()

static void view3d_header_region_draw ( const bContext C,
ARegion region 
)
static

Definition at line 1208 of file space_view3d.c.

References C, and ED_region_header().

Referenced by ED_spacetype_view3d().

◆ view3d_header_region_init()

static void view3d_header_region_init ( wmWindowManager wm,
ARegion region 
)
static

◆ view3d_header_region_listener()

static void view3d_header_region_listener ( const wmRegionListenerParams params)
static

◆ view3d_header_region_message_subscribe()

static void view3d_header_region_message_subscribe ( const wmRegionMessageSubscribeParams params)
static

◆ view3d_id_drop_copy()

static void view3d_id_drop_copy ( wmDrag drag,
wmDropBox drop 
)
static

◆ view3d_id_drop_copy_with_type()

static void view3d_id_drop_copy_with_type ( wmDrag drag,
wmDropBox drop 
)
static

◆ view3d_id_path_drop_copy()

static void view3d_id_path_drop_copy ( wmDrag drag,
wmDropBox drop 
)
static

◆ view3d_id_remap()

static void view3d_id_remap ( ScrArea area,
SpaceLink slink,
ID old_id,
ID new_id 
)
static

◆ view3d_ima_bg_drop_poll()

static bool view3d_ima_bg_drop_poll ( bContext C,
wmDrag drag,
const wmEvent event,
const char **  r_tooltip 
)
static

◆ view3d_ima_bg_is_camera_view()

static bool view3d_ima_bg_is_camera_view ( bContext C)
static

◆ view3d_ima_drop_poll()

static bool view3d_ima_drop_poll ( bContext C,
wmDrag drag,
const wmEvent event,
const char **  UNUSEDr_tooltip 
)
static

◆ view3d_ima_empty_drop_poll()

static bool view3d_ima_empty_drop_poll ( bContext C,
wmDrag drag,
const wmEvent event,
const char **  r_tooltip 
)
static

◆ view3d_init()

static void view3d_init ( wmWindowManager UNUSEDwm,
ScrArea UNUSEDarea 
)
static

Definition at line 345 of file space_view3d.c.

Referenced by ED_spacetype_view3d().

◆ view3d_lightcache_update()

static void view3d_lightcache_update ( bContext C)
static

◆ view3d_main_region_cursor()

static void view3d_main_region_cursor ( wmWindow win,
ScrArea area,
ARegion region 
)
static

◆ view3d_main_region_duplicate()

static void* view3d_main_region_duplicate ( void *  poin)
static

Definition at line 798 of file space_view3d.c.

References RegionView3D::clipbb, RegionView3D::localvd, MEM_dupallocN, and NULL.

Referenced by ED_spacetype_view3d().

◆ view3d_main_region_exit()

static void view3d_main_region_exit ( wmWindowManager wm,
ARegion region 
)
static

Definition at line 461 of file space_view3d.c.

References ED_view3d_stop_render_preview().

Referenced by ED_spacetype_view3d().

◆ view3d_main_region_free()

static void view3d_main_region_free ( ARegion region)
static

◆ view3d_main_region_init()

static void view3d_main_region_init ( wmWindowManager wm,
ARegion region 
)
static

◆ view3d_main_region_listener()

static void view3d_main_region_listener ( const wmRegionListenerParams params)
static

Definition at line 821 of file space_view3d.c.

References wmNotifier::action, blender::compositor::area(), ATTR_FALLTHROUGH, BKE_scene_get_depsgraph(), BKE_screen_view3d_sync(), View3D::camera, wmNotifier::category, Object::data, wmNotifier::data, depsgraph, ED_area_tag_refresh(), ED_region_tag_redraw(), ED_region_tag_redraw_cursor(), ED_render_view3d_update(), ELEM, View3D::flag, G_MAIN, ARegion::gizmo_map, NA_ADDED, NA_EDITED, NA_REMOVED, NA_RENAME, NA_SELECTED, NC_ANIMATION, NC_BRUSH, NC_CAMERA, NC_GEOM, NC_GPENCIL, NC_GROUP, NC_ID, NC_IMAGE, NC_LAMP, NC_LIGHTPROBE, NC_MATERIAL, NC_MOVIECLIP, NC_OBJECT, NC_SCENE, NC_SCREEN, NC_SPACE, NC_TEXTURE, NC_WM, NC_WORLD, ND_ANIMCHAN, ND_ANIMPLAY, ND_BONE_ACTIVE, ND_BONE_SELECT, ND_CONSTRAINT, ND_DATA, ND_DISPLAY, ND_DRAW, ND_DRAW_ANIMVIZ, ND_DRAW_RENDER_VIEWPORT, ND_FRAME, ND_KEYFRAME, ND_KEYFRAME_PROP, ND_KEYS, ND_LAYER, ND_LAYER_CONTENT, ND_LAYOUTBROWSE, ND_LAYOUTDELETE, ND_LAYOUTSET, ND_LIGHTING, ND_LIGHTING_DRAW, ND_LOD, ND_MARKERS, ND_MODE, ND_MODIFIER, ND_NLA, ND_NLA_ACTCHANGE, ND_NODES, ND_OB_ACTIVE, ND_OB_SELECT, ND_OB_VISIBLE, ND_PARTICLE, ND_POINTCACHE, ND_POSE, ND_RENDER_OPTIONS, ND_SCENEBROWSE, ND_SELECT, ND_SHADERFX, ND_SHADING, ND_SHADING_DRAW, ND_SHADING_LINKS, ND_SKETCH, ND_SPACE_VIEW3D, ND_TRANSFORM, ND_UNDO, ND_VERTEX_GROUP, ND_WORLD, ND_WORLD_DRAW, ND_XR_DATA_CHANGED, NS_VIEW3D_GPU, NS_VIEW3D_SHADING, params, RegionView3D::persp, wmNotifier::reference, ARegion::regiondata, RegionView3D::rflag, RV3D_CAMOB, RV3D_GPULIGHT_UPDATE, scene, wmNotifier::subtype, V3D_XR_SESSION_MIRROR, WM_gizmomap_tag_refresh(), and WM_window_get_active_view_layer().

Referenced by ED_spacetype_view3d().

◆ view3d_main_region_message_subscribe()

static void view3d_main_region_message_subscribe ( const wmRegionMessageSubscribeParams params)
static

◆ view3d_mat_drop_poll()

static bool view3d_mat_drop_poll ( bContext C,
wmDrag drag,
const wmEvent event,
const char **  UNUSEDr_tooltip 
)
static

Definition at line 526 of file space_view3d.c.

References C, ID_MA, and view3d_drop_id_in_main_region_poll().

Referenced by view3d_dropboxes().

◆ view3d_ob_drop_copy()

static void view3d_ob_drop_copy ( wmDrag drag,
wmDropBox drop 
)
static

◆ view3d_ob_drop_poll()

static bool view3d_ob_drop_poll ( bContext C,
wmDrag drag,
const wmEvent event,
const char **  UNUSEDr_tooltip 
)
static

Definition at line 510 of file space_view3d.c.

References C, ID_OB, and view3d_drop_id_in_main_region_poll().

Referenced by view3d_dropboxes().

◆ view3d_object_data_drop_poll()

static bool view3d_object_data_drop_poll ( bContext C,
wmDrag drag,
const wmEvent event,
const char **  r_tooltip 
)
static

◆ view3d_tools_region_draw()

static void view3d_tools_region_draw ( const bContext C,
ARegion region 
)
static

Definition at line 1541 of file space_view3d.c.

References C, CTX_data_mode_string(), ED_region_panels_ex(), and NULL.

Referenced by ED_spacetype_view3d().

◆ view3d_tools_region_init()

static void view3d_tools_region_init ( wmWindowManager wm,
ARegion region 
)
static

◆ view3d_volume_drop_poll()

static bool view3d_volume_drop_poll ( bContext UNUSEDC,
wmDrag drag,
const wmEvent UNUSEDevent,
const char **  UNUSEDr_tooltip 
)
static

Definition at line 615 of file space_view3d.c.

References wmDrag::icon, wmDrag::type, and WM_DRAG_PATH.

Referenced by view3d_dropboxes().

◆ view3d_widgets()

static void view3d_widgets ( void  )
static

Variable Documentation

◆ view3d_context_dir

const char* view3d_context_dir[]
Initial value:
= {
"active_base",
"active_object",
}

Definition at line 1597 of file space_view3d.c.

Referenced by view3d_context().