From 78a8d3685bd3487eb0b5dd55793f94fe7235e377 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 11 Jun 2018 15:40:37 +0200 Subject: Cleanup: remove moar ugly G.main usages... BKE_image was an ugly nest, could fix all but the ones from compositor, so moved ugly G.main there, at least we know where the Evil is that way ;) --- source/blender/editors/include/ED_node.h | 2 +- .../editors/interface/interface_eyedropper_color.c | 4 ++- source/blender/editors/object/object_add.c | 4 +-- source/blender/editors/render/render_internal.c | 10 +++--- source/blender/editors/render/render_opengl.c | 4 +-- source/blender/editors/render/render_view.c | 4 ++- .../editors/sculpt_paint/paint_image_proj.c | 4 +-- source/blender/editors/space_image/image_edit.c | 2 +- source/blender/editors/space_image/image_ops.c | 37 ++++++++++++---------- source/blender/editors/space_node/drawnode.c | 3 +- source/blender/editors/space_node/node_add.c | 3 +- source/blender/editors/space_node/node_edit.c | 14 +++++--- source/blender/editors/space_node/node_view.c | 16 ++++++---- 13 files changed, 62 insertions(+), 45 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h index c8e89afc18a..4d203ebe4ef 100644 --- a/source/blender/editors/include/ED_node.h +++ b/source/blender/editors/include/ED_node.h @@ -107,7 +107,7 @@ void ED_node_composite_job(const struct bContext *C, struct bNodeTree *nodetree, void ED_operatormacros_node(void); /* node_view.c */ -bool ED_space_node_color_sample(struct SpaceNode *snode, struct ARegion *ar, int mval[2], float r_col[3]); +bool ED_space_node_color_sample(struct Main *bmain, struct SpaceNode *snode, struct ARegion *ar, int mval[2], float r_col[3]); #endif /* __ED_NODE_H__ */ diff --git a/source/blender/editors/interface/interface_eyedropper_color.c b/source/blender/editors/interface/interface_eyedropper_color.c index 052da74623f..7ba4b15a88f 100644 --- a/source/blender/editors/interface/interface_eyedropper_color.c +++ b/source/blender/editors/interface/interface_eyedropper_color.c @@ -38,6 +38,7 @@ #include "BLI_math_vector.h" #include "BKE_context.h" +#include "BKE_main.h" #include "BKE_screen.h" #include "RNA_access.h" @@ -131,6 +132,7 @@ static void eyedropper_exit(bContext *C, wmOperator *op) void eyedropper_color_sample_fl(bContext *C, int mx, int my, float r_col[3]) { /* we could use some clever */ + Main *bmain = CTX_data_main(C); wmWindow *win = CTX_wm_window(C); ScrArea *sa = BKE_screen_find_area_xy(win->screen, SPACE_TYPE_ANY, mx, my); const char *display_device = CTX_data_scene(C)->display_settings.display_device; @@ -156,7 +158,7 @@ void eyedropper_color_sample_fl(bContext *C, int mx, int my, float r_col[3]) int mval[2] = {mx - ar->winrct.xmin, my - ar->winrct.ymin}; - if (ED_space_node_color_sample(snode, ar, mval, r_col)) { + if (ED_space_node_color_sample(bmain, snode, ar, mval, r_col)) { return; } } diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index c6da37d692e..519f5910624 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -1570,7 +1570,7 @@ static void convert_ensure_curve_cache(Main *bmain, Scene *scene, Object *ob) static void curvetomesh(Main *bmain, Scene *scene, Object *ob) { convert_ensure_curve_cache(bmain, scene, ob); - BKE_mesh_from_nurbs(ob); /* also does users */ + BKE_mesh_from_nurbs(bmain, ob); /* also does users */ if (ob->type == OB_MESH) { BKE_object_free_modifiers(ob, 0); @@ -1724,7 +1724,7 @@ static int convert_exec(bContext *C, wmOperator *op) newob = ob; } - BKE_mesh_to_curve(scene, newob); + BKE_mesh_to_curve(bmain, scene, newob); if (newob->type == OB_CURVE) { BKE_object_free_modifiers(newob, 0); /* after derivedmesh calls! */ diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index 8a15179a46e..59538df7a05 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -314,8 +314,8 @@ static int screen_render_exec(bContext *C, wmOperator *op) G.is_break = false; RE_test_break_cb(re, NULL, render_break); - ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); - BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE); + ima = BKE_image_verify_viewer(mainp, IMA_TYPE_R_RESULT, "Render Result"); + BKE_image_signal(mainp, ima, NULL, IMA_SIGNAL_FREE); BKE_image_backup_render(scene, ima, true); /* cleanup sequencer caches before starting user triggered render. @@ -551,7 +551,7 @@ static void image_rect_update(void *rjv, RenderResult *rr, volatile rcti *renrec else if (rj->image_outdated) { /* update entire render */ rj->image_outdated = false; - BKE_image_signal(ima, NULL, IMA_SIGNAL_COLORMANAGE); + BKE_image_signal(rj->main, ima, NULL, IMA_SIGNAL_COLORMANAGE); *(rj->do_update) = true; return; } @@ -974,8 +974,8 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even WM_jobs_callbacks(wm_job, render_startjob, NULL, NULL, render_endjob); /* get a render result image, and make sure it is empty */ - ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); - BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE); + ima = BKE_image_verify_viewer(mainp, IMA_TYPE_R_RESULT, "Render Result"); + BKE_image_signal(rj->main, ima, NULL, IMA_SIGNAL_FREE); BKE_image_backup_render(rj->scene, ima, true); rj->image = ima; diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index fa3b74d81ea..78cedf099a1 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -698,8 +698,8 @@ static bool screen_opengl_render_init(bContext *C, wmOperator *op) oglrender->re = RE_NewSceneRender(scene); /* create image and image user */ - oglrender->ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); - BKE_image_signal(oglrender->ima, NULL, IMA_SIGNAL_FREE); + oglrender->ima = BKE_image_verify_viewer(oglrender->bmain, IMA_TYPE_R_RESULT, "Render Result"); + BKE_image_signal(oglrender->bmain, oglrender->ima, NULL, IMA_SIGNAL_FREE); BKE_image_backup_render(oglrender->scene, oglrender->ima, true); oglrender->iuser.scene = scene; diff --git a/source/blender/editors/render/render_view.c b/source/blender/editors/render/render_view.c index de1194fe93d..ffb982ce8c2 100644 --- a/source/blender/editors/render/render_view.c +++ b/source/blender/editors/render/render_view.c @@ -37,6 +37,7 @@ #include "BKE_context.h" #include "BKE_image.h" #include "BKE_global.h" +#include "BKE_main.h" #include "BKE_screen.h" #include "BKE_report.h" @@ -129,6 +130,7 @@ static ScrArea *find_area_image_empty(bContext *C) /* new window uses x,y to set position */ ScrArea *render_view_open(bContext *C, int mx, int my, ReportList *reports) { + Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); wmWindow *win = NULL; ScrArea *sa = NULL; @@ -211,7 +213,7 @@ ScrArea *render_view_open(bContext *C, int mx, int my, ReportList *reports) sima = sa->spacedata.first; /* get the correct image, and scale it */ - sima->image = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); + sima->image = BKE_image_verify_viewer(bmain, IMA_TYPE_R_RESULT, "Render Result"); /* if we're rendering to full screen, set appropriate hints on image editor diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c index a24599f813f..bf77c69a7f5 100644 --- a/source/blender/editors/sculpt_paint/paint_image_proj.c +++ b/source/blender/editors/sculpt_paint/paint_image_proj.c @@ -5473,7 +5473,7 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - image = BKE_image_add_from_imbuf(ibuf, "image_view"); + image = BKE_image_add_from_imbuf(bmain, ibuf, "image_view"); /* Drop reference to ibuf so that the image owns it */ IMB_freeImBuf(ibuf); @@ -5744,7 +5744,7 @@ static bool proj_paint_add_slot(bContext *C, wmOperator *op) if (ima) { BKE_texpaint_slot_refresh_cache(scene, ma); - BKE_image_signal(ima, NULL, IMA_SIGNAL_USER_NEW_IMAGE); + BKE_image_signal(bmain, ima, NULL, IMA_SIGNAL_USER_NEW_IMAGE); WM_event_add_notifier(C, NC_IMAGE | NA_ADDED, ima); DAG_id_tag_update(&ma->id, 0); ED_area_tag_redraw(CTX_wm_area(C)); diff --git a/source/blender/editors/space_image/image_edit.c b/source/blender/editors/space_image/image_edit.c index 39a029fb9f0..087f3cdc7fe 100644 --- a/source/blender/editors/space_image/image_edit.c +++ b/source/blender/editors/space_image/image_edit.c @@ -78,7 +78,7 @@ void ED_space_image_set(Main *bmain, SpaceImage *sima, Scene *scene, Object *obe } if (sima->image) - BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE); + BKE_image_signal(bmain, sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE); id_us_ensure_real((ID *)sima->image); diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index bfebc850b08..2ce7da2126c 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -1175,14 +1175,14 @@ static int image_sequence_get_len(ListBase *frames, int *ofs) } static Image *image_open_single( - wmOperator *op, const char *filepath, const char *relbase, + Main *bmain, wmOperator *op, const char *filepath, const char *relbase, bool is_relative_path, bool use_multiview, int frame_seq_len) { bool exists = false; Image *ima = NULL; errno = 0; - ima = BKE_image_load_exists_ex(filepath, &exists); + ima = BKE_image_load_exists_ex(bmain, filepath, &exists); if (!ima) { if (op->customdata) MEM_freeN(op->customdata); @@ -1263,7 +1263,7 @@ static int image_open_exec(bContext *C, wmOperator *op) } Image *ima_range = image_open_single( - op, filepath_range, BKE_main_blendfile_path(bmain), + bmain, op, filepath_range, BKE_main_blendfile_path(bmain), is_relative_path, use_multiview, frame_range_seq_len); /* take the first image */ @@ -1278,7 +1278,7 @@ static int image_open_exec(bContext *C, wmOperator *op) else { /* for drag & drop etc. */ ima = image_open_single( - op, filepath, BKE_main_blendfile_path(bmain), + bmain, op, filepath, BKE_main_blendfile_path(bmain), is_relative_path, use_multiview, 1); } @@ -1343,7 +1343,7 @@ static int image_open_exec(bContext *C, wmOperator *op) /* XXX unpackImage frees image buffers */ ED_preview_kill_jobs(CTX_wm_manager(C), bmain); - BKE_image_signal(ima, iuser, IMA_SIGNAL_RELOAD); + BKE_image_signal(bmain, ima, iuser, IMA_SIGNAL_RELOAD); WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, ima); MEM_freeN(op->customdata); @@ -1515,6 +1515,7 @@ void IMAGE_OT_match_movie_length(wmOperatorType *ot) static int image_replace_exec(bContext *C, wmOperator *op) { + Main *bmain = CTX_data_main(C); SpaceImage *sima = CTX_wm_space_image(C); char str[FILE_MAX]; @@ -1528,7 +1529,7 @@ static int image_replace_exec(bContext *C, wmOperator *op) if (sima->image->source == IMA_SRC_GENERATED) { sima->image->source = IMA_SRC_FILE; - BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_SRC_CHANGE); + BKE_image_signal(bmain, sima->image, &sima->iuser, IMA_SIGNAL_SRC_CHANGE); } if (BLI_testextensie_array(str, imb_ext_movie)) @@ -1540,7 +1541,7 @@ static int image_replace_exec(bContext *C, wmOperator *op) ED_preview_kill_jobs(CTX_wm_manager(C), CTX_data_main(C)); BKE_icon_changed(BKE_icon_id_ensure(&sima->image->id)); - BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_RELOAD); + BKE_image_signal(bmain, sima->image, &sima->iuser, IMA_SIGNAL_RELOAD); WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, sima->image); return OPERATOR_FINISHED; @@ -1731,7 +1732,7 @@ static void save_image_options_to_op(SaveImageOptions *simopts, wmOperator *op) } static void save_image_post( - wmOperator *op, ImBuf *ibuf, Image *ima, int ok, int save_copy, + Main *bmain, wmOperator *op, ImBuf *ibuf, Image *ima, int ok, int save_copy, const char *relbase, int relative, int do_newpath, const char *filepath) { if (ok) { @@ -1777,7 +1778,7 @@ static void save_image_post( if (!BKE_color_managed_colorspace_settings_equals(&old_colorspace_settings, &ima->colorspace_settings)) { - BKE_image_signal(ima, NULL, IMA_SIGNAL_COLORMANAGE); + BKE_image_signal(bmain, ima, NULL, IMA_SIGNAL_COLORMANAGE); } } } @@ -1808,6 +1809,7 @@ static void save_imbuf_post(ImBuf *ibuf, ImBuf *colormanaged_ibuf) */ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveImageOptions *simopts, bool do_newpath) { + Main *bmain = CTX_data_main(C); Image *ima = ED_space_image(sima); void *lock; ImBuf *ibuf = ED_space_image_acquire_buffer(sima, &lock); @@ -1885,7 +1887,7 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI if (imf->views_format == R_IMF_VIEWS_MULTIVIEW && is_exr_rr) { /* save render result */ ok = RE_WriteRenderResult(op->reports, rr, simopts->filepath, imf, NULL, sima->iuser.layer); - save_image_post(op, ibuf, ima, ok, true, relbase, relative, do_newpath, simopts->filepath); + save_image_post(bmain, op, ibuf, ima, ok, true, relbase, relative, do_newpath, simopts->filepath); ED_space_image_release_buffer(sima, ibuf, lock); } /* regular mono pipeline */ @@ -1898,7 +1900,7 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI ok = BKE_imbuf_write_as(colormanaged_ibuf, simopts->filepath, imf, save_copy); save_imbuf_post(ibuf, colormanaged_ibuf); } - save_image_post(op, ibuf, ima, ok, (is_exr_rr ? true : save_copy), relbase, relative, do_newpath, simopts->filepath); + save_image_post(bmain, op, ibuf, ima, ok, (is_exr_rr ? true : save_copy), relbase, relative, do_newpath, simopts->filepath); ED_space_image_release_buffer(sima, ibuf, lock); } /* individual multiview images */ @@ -1920,7 +1922,7 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI if (is_exr_rr) { BKE_scene_multiview_view_filepath_get(&scene->r, simopts->filepath, view, filepath); ok_view = RE_WriteRenderResult(op->reports, rr, filepath, imf, view, -1); - save_image_post(op, ibuf, ima, ok_view, true, relbase, relative, do_newpath, filepath); + save_image_post(bmain, op, ibuf, ima, ok_view, true, relbase, relative, do_newpath, filepath); } else { /* copy iuser to get the correct ibuf for this view */ @@ -1941,7 +1943,7 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI colormanaged_ibuf = IMB_colormanagement_imbuf_for_write(ibuf, save_as_render, true, &imf->view_settings, &imf->display_settings, imf); ok_view = BKE_imbuf_write_as(colormanaged_ibuf, filepath, &simopts->im_format, save_copy); save_imbuf_post(ibuf, colormanaged_ibuf); - save_image_post(op, ibuf, ima, ok_view, true, relbase, relative, do_newpath, filepath); + save_image_post(bmain, op, ibuf, ima, ok_view, true, relbase, relative, do_newpath, filepath); BKE_image_release_ibuf(sima->image, ibuf, lock); } ok &= ok_view; @@ -1955,7 +1957,7 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI else if (simopts->im_format.views_format == R_IMF_VIEWS_STEREO_3D) { if (imf->imtype == R_IMF_IMTYPE_MULTILAYER) { ok = RE_WriteRenderResult(op->reports, rr, simopts->filepath, imf, NULL, -1); - save_image_post(op, ibuf, ima, ok, true, relbase, relative, do_newpath, simopts->filepath); + save_image_post(bmain, op, ibuf, ima, ok, true, relbase, relative, do_newpath, simopts->filepath); ED_space_image_release_buffer(sima, ibuf, lock); } else { @@ -2333,6 +2335,7 @@ void IMAGE_OT_save_sequence(wmOperatorType *ot) static int image_reload_exec(bContext *C, wmOperator *UNUSED(op)) { + Main *bmain = CTX_data_main(C); Image *ima = CTX_data_edit_image(C); SpaceImage *sima = CTX_wm_space_image(C); @@ -2343,7 +2346,7 @@ static int image_reload_exec(bContext *C, wmOperator *UNUSED(op)) ED_preview_kill_jobs(CTX_wm_manager(C), CTX_data_main(C)); // XXX other users? - BKE_image_signal(ima, (sima) ? &sima->iuser : NULL, IMA_SIGNAL_RELOAD); + BKE_image_signal(bmain, ima, (sima) ? &sima->iuser : NULL, IMA_SIGNAL_RELOAD); DAG_id_tag_update(&ima->id, 0); WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, ima); @@ -2482,7 +2485,7 @@ static int image_new_exec(bContext *C, wmOperator *op) } } - BKE_image_signal(ima, (sima) ? &sima->iuser : NULL, IMA_SIGNAL_USER_NEW_IMAGE); + BKE_image_signal(bmain, ima, (sima) ? &sima->iuser : NULL, IMA_SIGNAL_USER_NEW_IMAGE); WM_event_add_notifier(C, NC_IMAGE | NA_ADDED, ima); @@ -3604,7 +3607,7 @@ static int image_read_renderlayers_exec(bContext *C, wmOperator *UNUSED(op)) SpaceImage *sima = CTX_wm_space_image(C); Image *ima; - ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); + ima = BKE_image_verify_viewer(bmain, IMA_TYPE_R_RESULT, "Render Result"); if (sima->image == NULL) { ED_space_image_set(bmain, sima, scene, NULL, ima); } diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 4d12ebfb16b..63bd305c13d 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -3234,6 +3234,7 @@ void ED_init_node_socket_type_virtual(bNodeSocketType *stype) void draw_nodespace_back_pix(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeInstanceKey parent_key) { + Main *bmain = CTX_data_main(C); bNodeInstanceKey active_viewer_key = (snode->nodetree ? snode->nodetree->active_viewer_key : NODE_INSTANCE_KEY_NONE); Image *ima; void *lock; @@ -3245,7 +3246,7 @@ void draw_nodespace_back_pix(const bContext *C, ARegion *ar, SpaceNode *snode, b if (parent_key.value != active_viewer_key.value) return; - ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); + ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock); if (ibuf) { float x, y; diff --git a/source/blender/editors/space_node/node_add.c b/source/blender/editors/space_node/node_add.c index edd19617a0f..10dbda08280 100644 --- a/source/blender/editors/space_node/node_add.c +++ b/source/blender/editors/space_node/node_add.c @@ -304,6 +304,7 @@ void NODE_OT_add_reroute(wmOperatorType *ot) static int node_add_file_exec(bContext *C, wmOperator *op) { + Main *bmain = CTX_data_main(C); SpaceNode *snode = CTX_wm_space_node(C); bNode *node; Image *ima; @@ -353,7 +354,7 @@ static int node_add_file_exec(bContext *C, wmOperator *op) * to get proper image source. */ if (RNA_struct_property_is_set(op->ptr, "filepath")) { - BKE_image_signal(ima, NULL, IMA_SIGNAL_RELOAD); + BKE_image_signal(bmain, ima, NULL, IMA_SIGNAL_RELOAD); WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, ima); } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 1cb387bb527..388c403d42e 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -87,6 +87,7 @@ enum { }; typedef struct CompoJob { + Main *bmain; Scene *scene; bNodeTree *ntree; bNodeTree *localtree; @@ -182,7 +183,7 @@ static void compo_freejob(void *cjv) CompoJob *cj = cjv; if (cj->localtree) { - ntreeLocalMerge(cj->localtree, cj->ntree); + ntreeLocalMerge(cj->bmain, cj->localtree, cj->ntree); } MEM_freeN(cj); } @@ -266,6 +267,7 @@ void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene { wmJob *wm_job; CompoJob *cj; + Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); /* to fix bug: [#32272] */ @@ -277,13 +279,14 @@ void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene G.is_break = false; #endif - BKE_image_backup_render(scene, BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"), false); + BKE_image_backup_render(scene, BKE_image_verify_viewer(bmain, IMA_TYPE_R_RESULT, "Render Result"), false); wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene_owner, "Compositing", WM_JOB_EXCL_RENDER | WM_JOB_PROGRESS, WM_JOB_TYPE_COMPOSITE); cj = MEM_callocN(sizeof(CompoJob), "compo job"); /* customdata for preview thread */ + cj->bmain = bmain; cj->scene = scene; cj->ntree = nodetree; cj->recalc_flags = compo_get_recalc_flags(C); @@ -687,7 +690,7 @@ void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node) ED_node_tag_update_nodetree(bmain, ntree, node); /* addnode() doesnt link this yet... */ - node->id = (ID *)BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); + node->id = (ID *)BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); } else if (node->type == CMP_NODE_R_LAYERS) { Scene *scene; @@ -2501,13 +2504,14 @@ static void viewer_border_corner_to_backdrop(SpaceNode *snode, ARegion *ar, int static int viewer_border_exec(bContext *C, wmOperator *op) { + Main *bmain = CTX_data_main(C); Image *ima; void *lock; ImBuf *ibuf; - ED_preview_kill_jobs(CTX_wm_manager(C), CTX_data_main(C)); + ED_preview_kill_jobs(CTX_wm_manager(C), bmain); - ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); + ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock); if (ibuf) { diff --git a/source/blender/editors/space_node/node_view.c b/source/blender/editors/space_node/node_view.c index d52a6a89413..00eab0c69c1 100644 --- a/source/blender/editors/space_node/node_view.c +++ b/source/blender/editors/space_node/node_view.c @@ -36,8 +36,9 @@ #include "BKE_context.h" #include "BKE_image.h" -#include "BKE_screen.h" +#include "BKE_main.h" #include "BKE_node.h" +#include "BKE_screen.h" #include "ED_node.h" /* own include */ #include "ED_screen.h" @@ -238,6 +239,7 @@ static int snode_bg_viewmove_modal(bContext *C, wmOperator *op, const wmEvent *e static int snode_bg_viewmove_invoke(bContext *C, wmOperator *op, const wmEvent *event) { + Main *bmain = CTX_data_main(C); SpaceNode *snode = CTX_wm_space_node(C); ARegion *ar = CTX_wm_region(C); NodeViewMove *nvm; @@ -247,7 +249,7 @@ static int snode_bg_viewmove_invoke(bContext *C, wmOperator *op, const wmEvent * void *lock; - ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); + ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock); if (ibuf == NULL) { @@ -331,6 +333,7 @@ void NODE_OT_backimage_zoom(wmOperatorType *ot) static int backimage_fit_exec(bContext *C, wmOperator *UNUSED(op)) { + Main *bmain = CTX_data_main(C); SpaceNode *snode = CTX_wm_space_node(C); ARegion *ar = CTX_wm_region(C); @@ -343,7 +346,7 @@ static int backimage_fit_exec(bContext *C, wmOperator *UNUSED(op)) float facx, facy; - ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); + ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock); if ((ibuf == NULL) || (ibuf->x == 0) || (ibuf->y == 0)) { @@ -421,7 +424,7 @@ static void sample_draw(const bContext *C, ARegion *ar, void *arg_info) /* Returns color in linear space, matching ED_space_image_color_sample(). * And here we've got recursion in the comments tips... */ -bool ED_space_node_color_sample(SpaceNode *snode, ARegion *ar, int mval[2], float r_col[3]) +bool ED_space_node_color_sample(Main *bmain, SpaceNode *snode, ARegion *ar, int mval[2], float r_col[3]) { void *lock; Image *ima; @@ -436,7 +439,7 @@ bool ED_space_node_color_sample(SpaceNode *snode, ARegion *ar, int mval[2], floa return false; } - ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); + ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock); if (!ibuf) { return false; @@ -477,6 +480,7 @@ bool ED_space_node_color_sample(SpaceNode *snode, ARegion *ar, int mval[2], floa static void sample_apply(bContext *C, wmOperator *op, const wmEvent *event) { + Main *bmain = CTX_data_main(C); SpaceNode *snode = CTX_wm_space_node(C); ARegion *ar = CTX_wm_region(C); ImageSampleInfo *info = op->customdata; @@ -485,7 +489,7 @@ static void sample_apply(bContext *C, wmOperator *op, const wmEvent *event) ImBuf *ibuf; float fx, fy, bufx, bufy; - ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node"); + ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node"); ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock); if (!ibuf) { info->draw = 0; -- cgit v1.2.3