110 static bool recursive_check =
false;
119 if (recursive_check) {
128 recursive_check =
true;
141 recursive_check =
false;
165 screen =
static_cast<bScreen *
>(screen->id.next))
179 update_ctx.
bmain = bmain;
181 scene =
static_cast<Scene *
>(scene->id.next))
183 update_ctx.
scene = scene;
190 if (scene->compositing_node_group && update_scene_data) {
247 if (node->id == &tex->
id) {
255 if (
ELEM(tex, brush->mtex.tex, brush->mask_mtex.tex)) {
void BKE_brush_tag_unsaved_changes(Brush *brush)
void CTX_data_main_set(bContext *C, Main *bmain)
void CTX_wm_manager_set(bContext *C, wmWindowManager *wm)
Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
void CTX_free(bContext *C)
void CTX_wm_screen_set(bContext *C, bScreen *screen)
void CTX_data_scene_set(bContext *C, Scene *scene)
void CTX_wm_window_set(bContext *C, wmWindow *win)
void CTX_wm_area_set(bContext *C, ScrArea *area)
void CTX_wm_region_set(bContext *C, ARegion *region)
void BKE_icon_changed(int icon_id)
int BKE_icon_id_ensure(struct ID *id)
void BKE_main_ensure_invariants(Main &bmain, std::optional< blender::Span< ID * > > modified_ids=std::nullopt)
General operations, lookup, etc. for materials.
void BKE_texpaint_slots_refresh_object(Scene *scene, Object *ob)
void BKE_material_make_node_previews_dirty(Material *ma)
void BKE_paint_invalidate_overlay_tex(Scene *scene, ViewLayer *view_layer, const Tex *tex)
Depsgraph * BKE_scene_ensure_depsgraph(Main *bmain, Scene *scene, ViewLayer *view_layer)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
int BLI_thread_is_main(void)
Main * DEG_get_bmain(const Depsgraph *graph)
Scene * DEG_get_input_scene(const Depsgraph *graph)
@ ID_RECALC_AUDIO_LISTENER
Object is a sort of wrapper for general info.
bool ED_paint_proj_mesh_data_check(Scene &scene, Object &ob, bool *r_has_uvs, bool *r_has_mat, bool *r_has_tex, bool *r_has_stencil)
void ED_preview_kill_jobs(wmWindowManager *wm, Main *bmain)
void ED_previews_tag_dirty_by_id(const Main &bmain, const ID &id)
void ED_view3d_stop_render_preview(wmWindowManager *wm, ARegion *region)
BPy_StructRNA * depsgraph
RenderEngine * RE_view_engine_get(const ViewRender *view_render)
void tag_update_id(ID *id)
void prefetch_stop(Scene *scene)
void cache_cleanup_final(Scene *scene)
void relations_invalidate_compositor_modifiers(const Main *bmain, const bNodeTree *node_tree)
void relations_invalidate_scene_strips(const Main *bmain, const Scene *scene_target)
bool animation_keyframes_exist(const Scene *scene)
Editing * editing_get(const Scene *scene)
void cache_cleanup_intra(Scene *scene)
void ntreeCompositUpdateRLayers(bNodeTree *ntree)
static void material_changed(Main *bmain, Material *ma)
static void texture_changed(Main *bmain, Tex *tex)
static void scene_changed(Main *bmain, Scene *scene)
static void lamp_changed(Main *bmain, Light *la)
void ED_render_engine_area_exit(Main *bmain, ScrArea *area)
void ED_render_view3d_update(Depsgraph *depsgraph, wmWindow *window, ScrArea *area, const bool updated)
void ED_render_id_flush_update(const DEGEditorUpdateContext *update_ctx, ID *id)
static void world_changed(Main *bmain, World *wo)
void ED_render_view_layer_changed(Main *bmain, bScreen *screen)
void ED_render_engine_changed(Main *bmain, const bool update_scene_data)
static void update_sequencer(const DEGEditorUpdateContext *update_ctx, Main *bmain, ID *id)
static void image_changed(Main *bmain, Image *ima)
void ED_render_scene_update(const DEGEditorUpdateContext *update_ctx, const bool updated)
void RE_FreePersistentData(const Scene *scene)
struct ViewRender * view_render
void(* view_update)(struct RenderEngine *engine, const struct bContext *context, struct Depsgraph *depsgraph)
struct bNodeTree * compositing_node_group
bScreen * WM_window_get_active_screen(const wmWindow *win)