Blender V5.0
BKE_screen.hh File Reference
#include <memory>
#include <string>
#include "BLI_compiler_attrs.h"
#include "BLI_map.hh"
#include "BLI_math_vector_types.hh"
#include "BLI_string_ref.hh"
#include "BLI_vector.hh"
#include "DNA_vec_types.h"
#include "RNA_types.hh"
#include "BKE_context.hh"

Go to the source code of this file.

Classes

struct  wmSpaceTypeListenerParams
struct  SpaceType
struct  wmRegionListenerParams
struct  wmRegionMessageSubscribeParams
struct  RegionPollParams
struct  ARegionType
struct  PanelType
struct  LayoutPanelHeader
struct  LayoutPanelBody
struct  LayoutPanels
struct  Panel_Runtime
struct  blender::bke::ARegionRuntime
struct  uiListType
struct  HeaderType
struct  Header
struct  MenuType
struct  Menu
struct  AssetShelfType

Namespaces

namespace  blender
namespace  blender::bke
namespace  blender::bke::id
namespace  blender::asset_system

Macros

#define BKE_ST_MAXNAME   64
#define ASSET_SHELF_PREVIEW_SIZE_DEFAULT   48

Typedefs

using uiListDrawItemFunc
using uiListDrawFilterFunc = void (*)(uiList *ui_list, const bContext *C, uiLayout *layout)
using uiListFilterItemsFunc
using uiListListener = void (*)(uiList *ui_list, wmRegionListenerParams *params)

Enumerations

enum  ARegionDrawLockFlags { REGION_DRAW_LOCK_NONE = 0 , REGION_DRAW_LOCK_RENDER = (1 << 0) , REGION_DRAW_LOCK_BAKING = (1 << 1) , REGION_DRAW_LOCK_ALL = (REGION_DRAW_LOCK_RENDER | REGION_DRAW_LOCK_BAKING) }
enum  {
  PANEL_TYPE_DEFAULT_CLOSED = (1 << 0) , PANEL_TYPE_NO_HEADER = (1 << 1) , PANEL_TYPE_HEADER_EXPAND = (1 << 2) , PANEL_TYPE_LAYOUT_VERT_BAR = (1 << 3) ,
  PANEL_TYPE_INSTANCED = (1 << 4) , PANEL_TYPE_NO_SEARCH = (1 << 7)
}
enum class  MenuTypeFlag { ContextDependent = (1 << 0) , SearchOnKeyPress = (1 << 1) }
enum  AssetShelfTypeFlag {
  ASSET_SHELF_TYPE_FLAG_NO_ASSET_DRAG = (1 << 0) , ASSET_SHELF_TYPE_FLAG_DEFAULT_VISIBLE = (1 << 1) , ASSET_SHELF_TYPE_FLAG_STORE_CATALOGS_IN_PREFS = (1 << 2) , ASSET_SHELF_TYPE_FLAG_ACTIVATE_FOR_CONTEXT_MENU = (1 << 3) ,
  ASSET_SHELF_TYPE_FLAG_MAX
}

Functions

 ENUM_OPERATORS (AssetShelfTypeFlag, ASSET_SHELF_TYPE_FLAG_MAX)
SpaceTypeBKE_spacetype_from_id (int spaceid)
ARegionTypeBKE_regiontype_from_id (const SpaceType *st, int regionid)
blender::Span< std::unique_ptr< SpaceType > > BKE_spacetypes_list ()
void BKE_spacetype_register (std::unique_ptr< SpaceType > st)
bool BKE_spacetype_exists (int spaceid)
void BKE_spacetypes_free ()
void BKE_spacedata_freelist (ListBase *lb)
void BKE_spacedata_copylist (ListBase *lb_dst, ListBase *lb_src)
void BKE_spacedata_draw_locks (ARegionDrawLockFlags lock_flags)
ARegionBKE_spacedata_find_region_type (const SpaceLink *slink, const ScrArea *area, int region_type) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_spacedata_callback_id_remap_set (void(*func)(ScrArea *area, SpaceLink *sl, ID *old_id, ID *new_id))
void BKE_spacedata_id_unref (ScrArea *area, SpaceLink *sl, ID *id)
ARegionBKE_area_region_copy (const SpaceType *st, const ARegion *region)
ARegionBKE_area_region_new ()
void BKE_area_region_free (SpaceType *st, ARegion *region)
void BKE_area_region_panels_free (ListBase *panels)
PanelBKE_panel_new (PanelType *panel_type)
void BKE_panel_free (Panel *panel)
void BKE_screen_area_free (ScrArea *area)
void BKE_region_callback_free_gizmomap_set (void(*callback)(wmGizmoMap *))
void BKE_region_callback_refresh_tag_gizmomap_set (void(*callback)(wmGizmoMap *))
LayoutPanelStateBKE_panel_layout_panel_state_ensure (Panel *panel, blender::StringRef idname, bool default_closed)
ARegionBKE_region_find_in_listbase_by_type (const ListBase *regionbase, const int region_type)
ARegionBKE_area_find_region_type (const ScrArea *area, int region_type)
ARegionBKE_area_find_region_active_win (const ScrArea *area)
ARegionBKE_area_find_region_xy (const ScrArea *area, int regiontype, const int xy[2]) ATTR_NONNULL(3)
ARegionBKE_screen_find_region_type (const bScreen *screen, int region_type) ATTR_NONNULL(1)
ARegionBKE_screen_find_region_xy (const bScreen *screen, int regiontype, const int xy[2]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
ARegion ARegionBKE_screen_find_main_region_at_xy (const bScreen *screen, int space_type, const int xy[2]) ATTR_NONNULL(1
ARegion ARegion ScrAreaBKE_screen_find_area_from_space (const bScreen *screen, const SpaceLink *sl) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
ARegion ARegion ScrArea std::optional< std::string > BKE_screen_path_from_screen_to_space (const PointerRNA *ptr)
ScrAreaBKE_screen_find_big_area (const bScreen *screen, int spacetype, short min)
ScrAreaBKE_screen_area_map_find_area_xy (const ScrAreaMap *areamap, int spacetype, const int xy[2]) ATTR_NONNULL(1
ScrArea ScrAreaBKE_screen_find_area_xy (const bScreen *screen, int spacetype, const int xy[2]) ATTR_NONNULL(1
ScrArea ScrArea void BKE_screen_gizmo_tag_refresh (bScreen *screen)
void BKE_screen_runtime_refresh_for_blendfile (bScreen *screen)
void BKE_screen_view3d_sync (View3D *v3d, Scene *scene)
void BKE_screen_view3d_scene_sync (bScreen *screen, Scene *scene)
bool BKE_screen_is_fullscreen_area (const bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool BKE_screen_is_used (const bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
float BKE_screen_view3d_zoom_to_fac (float camzoom)
float BKE_screen_view3d_zoom_from_fac (float zoomfac)
void BKE_screen_view3d_shading_init (View3DShading *shading)
void BKE_screen_foreach_id_screen_area (LibraryForeachIDData *data, ScrArea *area)
void BKE_screen_free_data (bScreen *screen)
void BKE_screen_area_map_free (ScrAreaMap *area_map) ATTR_NONNULL()
ScrEdgeBKE_screen_find_edge (const bScreen *screen, ScrVert *v1, ScrVert *v2)
void BKE_screen_sort_scrvert (ScrVert **v1, ScrVert **v2)
void BKE_screen_remove_double_scrverts (bScreen *screen)
void BKE_screen_remove_double_scredges (bScreen *screen)
void BKE_screen_remove_unused_scredges (bScreen *screen)
void BKE_screen_remove_unused_scrverts (bScreen *screen)
void BKE_screen_header_alignment_reset (bScreen *screen)
void BKE_screen_view3d_shading_blend_write (BlendWriter *writer, View3DShading *shading)
void BKE_screen_view3d_shading_blend_read_data (BlendDataReader *reader, View3DShading *shading)
void BKE_screen_area_map_blend_write (BlendWriter *writer, ScrAreaMap *area_map)
bool BKE_screen_area_map_blend_read_data (BlendDataReader *reader, ScrAreaMap *area_map)
void BKE_screen_view3d_do_versions_250 (View3D *v3d, ListBase *regions)
void BKE_screen_area_blend_read_after_liblink (BlendLibReader *reader, ID *parent_id, ScrArea *area)
bool BKE_screen_blend_read_data (BlendDataReader *reader, bScreen *screen)

Macro Definition Documentation

◆ ASSET_SHELF_PREVIEW_SIZE_DEFAULT

◆ BKE_ST_MAXNAME

Typedef Documentation

◆ uiListDrawFilterFunc

using uiListDrawFilterFunc = void (*)(uiList *ui_list, const bContext *C, uiLayout *layout)

Draw the filtering part of an uiList.

Definition at line 535 of file BKE_screen.hh.

◆ uiListDrawItemFunc

Initial value:
void (*)(uiList *ui_list,
const bContext *C,
uiLayout *layout,
PointerRNA *dataptr,
PointerRNA *itemptr,
int icon,
PointerRNA *active_dataptr,
const char *active_propname,
int index,
int flt_flag)
#define C
Definition RandGen.cpp:29

Draw an item in the ui_list.

Definition at line 523 of file BKE_screen.hh.

◆ uiListFilterItemsFunc

Initial value:
void (*)(uiList *ui_list,
const bContext *C,
const char *propname)

Filter items of an uiList.

Definition at line 538 of file BKE_screen.hh.

◆ uiListListener

using uiListListener = void (*)(uiList *ui_list, wmRegionListenerParams *params)

Listen to notifiers. Only for lists defined in C.

Definition at line 544 of file BKE_screen.hh.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

PanelType.flag

Enumerator
PANEL_TYPE_DEFAULT_CLOSED 
PANEL_TYPE_NO_HEADER 
PANEL_TYPE_HEADER_EXPAND 

Makes buttons in the header shrink/stretch to fill full layout width.

PANEL_TYPE_LAYOUT_VERT_BAR 
PANEL_TYPE_INSTANCED 

This panel type represents data external to the UI.

PANEL_TYPE_NO_SEARCH 

Don't search panels with this type during property search.

Definition at line 387 of file BKE_screen.hh.

◆ ARegionDrawLockFlags

Enumerator
REGION_DRAW_LOCK_NONE 
REGION_DRAW_LOCK_RENDER 
REGION_DRAW_LOCK_BAKING 
REGION_DRAW_LOCK_ALL 

Definition at line 202 of file BKE_screen.hh.

◆ AssetShelfTypeFlag

Enumerator
ASSET_SHELF_TYPE_FLAG_NO_ASSET_DRAG 

Do not trigger asset dragging on drag events. Drag events can be overridden with custom keymap items then.

ASSET_SHELF_TYPE_FLAG_DEFAULT_VISIBLE 
ASSET_SHELF_TYPE_FLAG_STORE_CATALOGS_IN_PREFS 
ASSET_SHELF_TYPE_FLAG_ACTIVATE_FOR_CONTEXT_MENU 

When spawning a context menu for an asset, activate the asset and call the activate operator (bl_activate_operator/AssetShelfType.activate_operator) if present, rather than just highlighting the asset as active.

ASSET_SHELF_TYPE_FLAG_MAX 

Definition at line 636 of file BKE_screen.hh.

◆ MenuTypeFlag

enum class MenuTypeFlag
strong
Enumerator
ContextDependent 

Whether the menu depends on data retrieved via CTX_data_pointer_get. If it is context dependent, menu search has to scan it in different contexts.

SearchOnKeyPress 

Automatically start searching in the menu when pressing a key.

Definition at line 589 of file BKE_screen.hh.

Function Documentation

◆ BKE_area_find_region_active_win()

◆ BKE_area_find_region_type()

ARegion * BKE_area_find_region_type ( const ScrArea * area,
int region_type )

Find a region of type region_type in the currently active space of area.

Note
This does not work if the region to look up is not in the active space. Use BKE_spacedata_find_region_type if that may be the case.

Definition at line 846 of file screen.cc.

References LISTBASE_FOREACH, and ScrArea::regionbase.

Referenced by blender::ed::asset::shelf::active_shelf_from_area(), ANIM_deselect_keys_in_animation_editors(), ANIM_frame_channel_y_extents(), animchannels_select_filter_invoke(), BKE_area_find_region_active_win(), BKE_spacedata_find_region_type(), blend_file_thumb_from_camera(), blo_do_versions_260(), blo_do_versions_430(), blender::ui::bonedropper_set_draw_callback_region(), buttons_start_filter_exec(), blender::ed::vse::channel_draw_context_init(), clip_refresh(), console_clear_exec(), console_clear_line_exec(), console_delete_exec(), console_history_append_exec(), console_history_cycle_exec(), console_indent_exec(), console_insert_exec(), console_modal_select_apply(), console_move_exec(), console_paste_exec(), console_scrollback_append_exec(), console_select_set_invoke(), console_selectword_invoke(), console_unindent_exec(), context_find_graph_editor(), datadropper_set_draw_callback_region(), do_version_area_change_space_to_space_action(), do_versions_area_ensure_tool_region(), ED_area_type_hud_ensure(), ED_drivers_editor_init(), ed_markers_poll_markers_exist_visible(), ED_screens_header_tools_menu_create(), ED_text_activate_in_screen(), ED_view3d_gizmo_ruler_remove_by_gpencil_layer(), blender::ed::animrig::ensure_asset_ui_visible(), file_refresh(), file_smoothscroll_invoke(), graphkeys_channel_view_pick_invoke(), graphkeys_view_selected_channels_exec(), hud_panel_operator_redo_poll(), hud_region_add(), is_header_azone_location(), menu_items_from_ui_create(), blender::ed::space_node::node_area_listener(), blender::ed::outliner::outliner_deactivate(), blender::ed::outliner::outliner_start_filter_exec(), blender::ed::space_node::viewer_linking::position_viewer_node(), region_scale_toggle_hidden(), region_toggle_exec(), blender::ed::asset::screenshot_preview_exec(), blender::ed::vse::sequencer_refresh(), blender::ed::space_node::snode_set_context(), space_text_scroll_to_cursor_with_area(), blender::ed::spreadsheet::spreadsheet_main_region_draw(), text_autocomplete_modal(), text_has_properties_region(), UI_view2d_fromcontext_rwin(), userpref_execute_region_poll(), userpref_show_exec(), v3d_cursor_snap_draw_fn(), v3d_cursor_snap_poll_fn(), wm_handler_fileselect_do(), wm_keymap_item_find_props(), wm_operator_call_internal(), and WM_window_cursor_keymap_status_refresh().

◆ BKE_area_find_region_xy()

◆ BKE_area_region_copy()

◆ BKE_area_region_free()

◆ BKE_area_region_new()

◆ BKE_area_region_panels_free()

void BKE_area_region_panels_free ( ListBase * panels)

◆ BKE_panel_free()

◆ BKE_panel_layout_panel_state_ensure()

LayoutPanelState * BKE_panel_layout_panel_state_ensure ( Panel * panel,
blender::StringRef idname,
bool default_closed )

Get the layout panel state for the given idname. If it does not exist yet, initialize a new panel state with the given default value.

Definition at line 520 of file screen.cc.

References BLI_addtail(), BLI_strdupn(), blender::StringRefBase::data(), LAYOUT_PANEL_STATE_FLAG_OPEN, Panel::layout_panel_states, Panel::layout_panel_states_clock, LISTBASE_FOREACH, MEM_callocN(), SET_FLAG_FROM_TEST, blender::StringRefBase::size(), and state.

Referenced by blender::nodes::draw_geometry_nodes_operator_redo_ui(), uiLayout::panel(), and blender::panel_draw().

◆ BKE_panel_new()

Panel * BKE_panel_new ( PanelType * panel_type)

◆ BKE_region_callback_free_gizmomap_set()

void BKE_region_callback_free_gizmomap_set ( void(* callback )(wmGizmoMap *))

Gizmo-maps of a region need to be freed with the region. Uses callback to avoid low-level call.

Definition at line 515 of file screen.cc.

References region_free_gizmomap_callback.

Referenced by WM_init().

◆ BKE_region_callback_refresh_tag_gizmomap_set()

void BKE_region_callback_refresh_tag_gizmomap_set ( void(* callback )(wmGizmoMap *))

Definition at line 482 of file screen.cc.

References region_refresh_tag_gizmomap_callback.

Referenced by WM_init().

◆ BKE_region_find_in_listbase_by_type()

ARegion * BKE_region_find_in_listbase_by_type ( const ListBase * regionbase,
const int region_type )

Find a region of type region_type in provided regionbase.

Note
this is useful for versioning where either the #Area or SpaceLink regionbase are typical inputs

Definition at line 835 of file screen.cc.

References LISTBASE_FOREACH.

Referenced by blo_do_versions_300(), BLO_update_defaults_workspace(), and do_versions_after_linking_300().

◆ BKE_regiontype_from_id()

◆ BKE_screen_area_blend_read_after_liblink()

void BKE_screen_area_blend_read_after_liblink ( BlendLibReader * reader,
ID * parent_id,
ScrArea * area )

Called after lib linking process is done, to perform some validation on the read data, or some complex specific reading process that requires the data to be fully read and ID pointers to be valid.

Definition at line 1470 of file screen.cc.

References BKE_area_region_free(), BKE_spacetype_from_id(), SpaceType::blend_read_after_liblink, BLI_freelinkN(), ListBase::first, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, ScrArea::regionbase, regions_remove_invalid(), and ScrArea::spacedata.

Referenced by screen_blend_read_after_liblink(), and window_manager_blend_read_after_liblink().

◆ BKE_screen_area_free()

◆ BKE_screen_area_map_blend_read_data()

bool BKE_screen_area_map_blend_read_data ( BlendDataReader * reader,
ScrAreaMap * area_map )

◆ BKE_screen_area_map_blend_write()

◆ BKE_screen_area_map_find_area_xy()

ScrArea * BKE_screen_area_map_find_area_xy ( const ScrAreaMap * areamap,
int spacetype,
const int xy[2] )

References xy.

◆ BKE_screen_area_map_free()

◆ BKE_screen_blend_read_data()

◆ BKE_screen_find_area_from_space()

ARegion ARegion ScrArea * BKE_screen_find_area_from_space ( const bScreen * screen,
const SpaceLink * sl )
Note
Ideally we can get the area from the context, there are a few places however where this isn't practical.

References ATTR_WARN_UNUSED_RESULT, min, and ptr.

◆ BKE_screen_find_area_xy()

◆ BKE_screen_find_big_area()

ScrArea * BKE_screen_find_big_area ( const bScreen * screen,
int spacetype,
short min )

◆ BKE_screen_find_edge()

ScrEdge * BKE_screen_find_edge ( const bScreen * screen,
ScrVert * v1,
ScrVert * v2 )

◆ BKE_screen_find_main_region_at_xy()

ARegion ARegion * BKE_screen_find_main_region_at_xy ( const bScreen * screen,
int space_type,
const int xy[2] )

References xy.

◆ BKE_screen_find_region_type()

ARegion * BKE_screen_find_region_type ( const bScreen * screen,
int region_type )
Note
This is only for screen level regions (typically menus/popups).

Definition at line 891 of file screen.cc.

References LISTBASE_FOREACH, and bScreen::regionbase.

Referenced by blender::ed::sculpt_paint::paint_update_mouse_cursor().

◆ BKE_screen_find_region_xy()

ARegion * BKE_screen_find_region_xy ( const bScreen * screen,
int regiontype,
const int xy[2] )
Note
This is only for screen level regions (typically menus/popups).

References ATTR_WARN_UNUSED_RESULT, and xy.

Referenced by ui_button_press_invoke().

◆ BKE_screen_foreach_id_screen_area()

void BKE_screen_foreach_id_screen_area ( LibraryForeachIDData * data,
ScrArea * area )

Callback used by lib_query to walk over all ID usages (mimics foreach_id callback of IDTypeInfo structure).

Definition at line 97 of file screen.cc.

References BKE_LIB_FOREACHID_PROCESS_IDSUPER, BKE_spacetype_from_id(), data, SpaceType::foreach_id, ScrArea::full, IDWALK_CB_NOP, LISTBASE_FOREACH, and ScrArea::spacedata.

Referenced by screen_foreach_id(), and window_manager_foreach_id().

◆ BKE_screen_free_data()

void BKE_screen_free_data ( bScreen * screen)

Free (or release) any data used by this screen (does not free the screen itself).

Definition at line 665 of file screen.cc.

References bScreen::id, and screen_free_data().

Referenced by screen_data_copy().

◆ BKE_screen_gizmo_tag_refresh()

ScrArea ScrArea void BKE_screen_gizmo_tag_refresh ( bScreen * screen)

◆ BKE_screen_header_alignment_reset()

◆ BKE_screen_is_fullscreen_area()

bool BKE_screen_is_fullscreen_area ( const bScreen * screen)

◆ BKE_screen_is_used()

bool BKE_screen_is_used ( const bScreen * screen)

Definition at line 1054 of file screen.cc.

References bScreen::winid.

Referenced by screen_is_used_by_other_window(), and workspace_layout_set_poll().

◆ BKE_screen_path_from_screen_to_space()

ARegion ARegion ScrArea std::optional< std::string > BKE_screen_path_from_screen_to_space ( const PointerRNA * ptr)
Note
used to get proper RNA paths for spaces (editors).

Definition at line 924 of file screen.cc.

References bScreen::areabase, BLI_assert_unreachable, BLI_findindex(), GS, ID_SCR, LISTBASE_FOREACH_INDEX, ptr, and ScrArea::spacedata.

◆ BKE_screen_remove_double_scredges()

void BKE_screen_remove_double_scredges ( bScreen * screen)

◆ BKE_screen_remove_double_scrverts()

◆ BKE_screen_remove_unused_scredges()

◆ BKE_screen_remove_unused_scrverts()

void BKE_screen_remove_unused_scrverts ( bScreen * screen)

◆ BKE_screen_runtime_refresh_for_blendfile()

void BKE_screen_runtime_refresh_for_blendfile ( bScreen * screen)

Refresh any screen data that should be set on file-load with "Load UI" disabled.

Definition at line 502 of file screen.cc.

References bScreen::areabase, ScrArea_Runtime::is_tool_set, LISTBASE_FOREACH, ScrArea::runtime, and ScrArea_Runtime::tool.

Referenced by setup_app_data().

◆ BKE_screen_sort_scrvert()

void BKE_screen_sort_scrvert ( ScrVert ** v1,
ScrVert ** v2 )

◆ BKE_screen_view3d_do_versions_250()

void BKE_screen_view3d_do_versions_250 ( View3D * v3d,
ListBase * regions )

◆ BKE_screen_view3d_scene_sync()

◆ BKE_screen_view3d_shading_blend_read_data()

void BKE_screen_view3d_shading_blend_read_data ( BlendDataReader * reader,
View3DShading * shading )

◆ BKE_screen_view3d_shading_blend_write()

void BKE_screen_view3d_shading_blend_write ( BlendWriter * writer,
View3DShading * shading )

Definition at line 1089 of file screen.cc.

References IDP_BlendWrite(), and View3DShading::prop.

Referenced by scene_blend_write(), view3d_space_blend_write(), and write_wm_xr_data().

◆ BKE_screen_view3d_shading_init()

void BKE_screen_view3d_shading_init ( View3DShading * shading)

Definition at line 1017 of file screen.cc.

References DNA_struct_default_get.

Referenced by blo_do_versions_280(), and object_preview_render().

◆ BKE_screen_view3d_sync()

◆ BKE_screen_view3d_zoom_from_fac()

float BKE_screen_view3d_zoom_from_fac ( float zoomfac)

◆ BKE_screen_view3d_zoom_to_fac()

◆ BKE_spacedata_callback_id_remap_set()

void BKE_spacedata_callback_id_remap_set ( void(* func )(ScrArea *area, SpaceLink *sl, ID *old_id, ID *new_id))

Definition at line 465 of file screen.cc.

References spacedata_id_remap_cb.

Referenced by WM_init().

◆ BKE_spacedata_copylist()

void BKE_spacedata_copylist ( ListBase * lb_dst,
ListBase * lb_src )
Parameters
lb_dstshould be empty (will be cleared).

Definition at line 406 of file screen.cc.

References BKE_spacetype_from_id(), BLI_addtail(), BLI_listbase_clear(), SpaceType::duplicate, LISTBASE_FOREACH, region_copylist(), and SpaceLink::regionbase.

Referenced by ED_area_data_copy().

◆ BKE_spacedata_draw_locks()

void BKE_spacedata_draw_locks ( ARegionDrawLockFlags lock_flags)

Facility to set locks for drawing to survive (render) threads accessing drawing data.

Note
Should be replaced in future by better local data handling for threads.
Effect of multiple calls to this function is not accumulative. The locking flags will be set to by the last call.

Definition at line 423 of file screen.cc.

References get_space_types(), and LISTBASE_FOREACH.

Referenced by dpaint_bake_startjob(), fluid_bake_startjob(), fluid_free_startjob(), lineart_bake_startjob(), render_drawlock(), and WM_locked_interface_set_with_flags().

◆ BKE_spacedata_find_region_type()

ARegion * BKE_spacedata_find_region_type ( const SpaceLink * slink,
const ScrArea * area,
int region_type )

Version of BKE_area_find_region_type that also works if slink is not the active space of area.

Definition at line 437 of file screen.cc.

References BKE_area_find_region_type(), BLI_assert, BLI_findindex(), ListBase::first, LISTBASE_FOREACH, ScrArea::regionbase, SpaceLink::regionbase, and ScrArea::spacedata.

Referenced by blo_do_versions_280().

◆ BKE_spacedata_freelist()

◆ BKE_spacedata_id_unref()

void BKE_spacedata_id_unref ( ScrArea * area,
SpaceLink * sl,
ID * id )

Currently unused!

Definition at line 470 of file screen.cc.

References spacedata_id_remap_cb.

◆ BKE_spacetype_exists()

bool BKE_spacetype_exists ( int spaceid)

Definition at line 294 of file screen.cc.

References BKE_spacetype_from_id().

Referenced by direct_link_area().

◆ BKE_spacetype_from_id()

◆ BKE_spacetype_register()

◆ BKE_spacetypes_free()

void BKE_spacetypes_free ( )

Only for quitting blender.

Definition at line 252 of file screen.cc.

References get_space_types().

Referenced by BKE_blender_free().

◆ BKE_spacetypes_list()

blender::Span< std::unique_ptr< SpaceType > > BKE_spacetypes_list ( )

Definition at line 277 of file screen.cc.

References get_space_types().

Referenced by ED_spacemacros_init(), ED_spacetypes_init(), and ED_spacetypes_keymap().

◆ ENUM_OPERATORS()