forked from bartvdbraak/blender
Cleanup: some more G.main removal from editor code.
This commit is contained in:
parent
7c75c2db4f
commit
051e186d5c
@ -1171,7 +1171,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob,
|
|||||||
* freed data from the blender side.
|
* freed data from the blender side.
|
||||||
*/
|
*/
|
||||||
if(preview && b_ob.type() != BL::Object::type_MESH)
|
if(preview && b_ob.type() != BL::Object::type_MESH)
|
||||||
b_ob.update_from_editmode();
|
b_ob.update_from_editmode(b_data);
|
||||||
|
|
||||||
bool need_undeformed = mesh->need_attribute(scene, ATTR_STD_GENERATED);
|
bool need_undeformed = mesh->need_attribute(scene, ATTR_STD_GENERATED);
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ enum {
|
|||||||
bool ED_object_editmode_exit_ex(struct Scene *scene, struct Object *obedit, int flag);
|
bool ED_object_editmode_exit_ex(struct Scene *scene, struct Object *obedit, int flag);
|
||||||
bool ED_object_editmode_exit(struct bContext *C, int flag);
|
bool ED_object_editmode_exit(struct bContext *C, int flag);
|
||||||
bool ED_object_editmode_enter(struct bContext *C, int flag);
|
bool ED_object_editmode_enter(struct bContext *C, int flag);
|
||||||
bool ED_object_editmode_load(struct Object *obedit);
|
bool ED_object_editmode_load(struct Main *bmain, struct Object *obedit);
|
||||||
|
|
||||||
bool ED_object_editmode_calc_active_center(struct Object *obedit, const bool select_only, float r_center[3]);
|
bool ED_object_editmode_calc_active_center(struct Object *obedit, const bool select_only, float r_center[3]);
|
||||||
|
|
||||||
|
@ -163,10 +163,12 @@ static int wm_collada_export_exec(bContext *C, wmOperator *op)
|
|||||||
limit_precision = RNA_boolean_get(op->ptr, "limit_precision");
|
limit_precision = RNA_boolean_get(op->ptr, "limit_precision");
|
||||||
keep_bind_info = RNA_boolean_get(op->ptr, "keep_bind_info");
|
keep_bind_info = RNA_boolean_get(op->ptr, "keep_bind_info");
|
||||||
|
|
||||||
/* get editmode results */
|
Main *bmain = CTX_data_main(C);
|
||||||
ED_object_editmode_load(CTX_data_edit_object(C));
|
|
||||||
|
|
||||||
EvaluationContext *eval_ctx = G.main->eval_ctx;
|
/* get editmode results */
|
||||||
|
ED_object_editmode_load(bmain, CTX_data_edit_object(C));
|
||||||
|
|
||||||
|
EvaluationContext *eval_ctx = bmain->eval_ctx;
|
||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
ExportSettings export_settings;
|
ExportSettings export_settings;
|
||||||
|
|
||||||
|
@ -588,14 +588,15 @@ static int test_bake_internal(bContext *C, ReportList *reports)
|
|||||||
|
|
||||||
static void init_bake_internal(BakeRender *bkr, bContext *C)
|
static void init_bake_internal(BakeRender *bkr, bContext *C)
|
||||||
{
|
{
|
||||||
|
Main *bmain = CTX_data_main(C);
|
||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
bScreen *sc = CTX_wm_screen(C);
|
bScreen *sc = CTX_wm_screen(C);
|
||||||
|
|
||||||
/* get editmode results */
|
/* get editmode results */
|
||||||
ED_object_editmode_load(CTX_data_edit_object(C));
|
ED_object_editmode_load(bmain, CTX_data_edit_object(C));
|
||||||
|
|
||||||
bkr->sa = sc ? BKE_screen_find_big_area(sc, SPACE_IMAGE, 10) : NULL; /* can be NULL */
|
bkr->sa = sc ? BKE_screen_find_big_area(sc, SPACE_IMAGE, 10) : NULL; /* can be NULL */
|
||||||
bkr->main = CTX_data_main(C);
|
bkr->main = bmain;
|
||||||
bkr->scene = scene;
|
bkr->scene = scene;
|
||||||
bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL;
|
bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL;
|
||||||
bkr->re = RE_NewRender("_Bake View_");
|
bkr->re = RE_NewRender("_Bake View_");
|
||||||
@ -628,7 +629,7 @@ static void finish_bake_internal(BakeRender *bkr)
|
|||||||
|
|
||||||
/* force OpenGL reload and mipmap recalc */
|
/* force OpenGL reload and mipmap recalc */
|
||||||
if ((bkr->scene->r.bake_flag & R_BAKE_VCOL) == 0) {
|
if ((bkr->scene->r.bake_flag & R_BAKE_VCOL) == 0) {
|
||||||
for (ima = G.main->image.first; ima; ima = ima->id.next) {
|
for (ima = bkr->main->image.first; ima; ima = ima->id.next) {
|
||||||
ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, NULL);
|
ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, NULL);
|
||||||
|
|
||||||
/* some of the images could have been changed during bake,
|
/* some of the images could have been changed during bake,
|
||||||
@ -669,7 +670,7 @@ static void finish_bake_internal(BakeRender *bkr)
|
|||||||
/* update all tagged meshes */
|
/* update all tagged meshes */
|
||||||
Mesh *me;
|
Mesh *me;
|
||||||
BLI_assert(BLI_thread_is_main());
|
BLI_assert(BLI_thread_is_main());
|
||||||
for (me = G.main->mesh.first; me; me = me->id.next) {
|
for (me = bkr->main->mesh.first; me; me = me->id.next) {
|
||||||
if (me->id.tag & LIB_TAG_DOIT) {
|
if (me->id.tag & LIB_TAG_DOIT) {
|
||||||
DAG_id_tag_update(&me->id, OB_RECALC_DATA);
|
DAG_id_tag_update(&me->id, OB_RECALC_DATA);
|
||||||
BKE_mesh_tessface_clear(me);
|
BKE_mesh_tessface_clear(me);
|
||||||
|
@ -621,7 +621,7 @@ static size_t initialize_internal_images(BakeImages *bake_images, ReportList *re
|
|||||||
/* create new mesh with edit mode changes and modifiers applied */
|
/* create new mesh with edit mode changes and modifiers applied */
|
||||||
static Mesh *bake_mesh_new_from_object(Main *bmain, Scene *scene, Object *ob)
|
static Mesh *bake_mesh_new_from_object(Main *bmain, Scene *scene, Object *ob)
|
||||||
{
|
{
|
||||||
ED_object_editmode_load(ob);
|
ED_object_editmode_load(bmain, ob);
|
||||||
|
|
||||||
Mesh *me = BKE_mesh_new_from_object(bmain, scene, ob, 1, 2, 0, 0);
|
Mesh *me = BKE_mesh_new_from_object(bmain, scene, ob, 1, 2, 0, 0);
|
||||||
if (me->flag & ME_AUTOSMOOTH) {
|
if (me->flag & ME_AUTOSMOOTH) {
|
||||||
|
@ -323,13 +323,13 @@ void OBJECT_OT_hide_render_set(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* ******************* toggle editmode operator ***************** */
|
/* ******************* toggle editmode operator ***************** */
|
||||||
|
|
||||||
static bool mesh_needs_keyindex(const Mesh *me)
|
static bool mesh_needs_keyindex(Main *bmain, const Mesh *me)
|
||||||
{
|
{
|
||||||
if (me->key) {
|
if (me->key) {
|
||||||
return false; /* will be added */
|
return false; /* will be added */
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const Object *ob = G.main->object.first; ob; ob = ob->id.next) {
|
for (const Object *ob = bmain->object.first; ob; ob = ob->id.next) {
|
||||||
if ((ob->parent) && (ob->parent->data == me) && ELEM(ob->partype, PARVERT1, PARVERT3)) {
|
if ((ob->parent) && (ob->parent->data == me) && ELEM(ob->partype, PARVERT1, PARVERT3)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -437,10 +437,9 @@ static bool ED_object_editmode_load_ex(Main *bmain, Object *obedit, const bool f
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ED_object_editmode_load(Object *obedit)
|
bool ED_object_editmode_load(Main *bmain, Object *obedit)
|
||||||
{
|
{
|
||||||
/* TODO(sergey): use proper main here? */
|
return ED_object_editmode_load_ex(bmain, obedit, false);
|
||||||
return ED_object_editmode_load_ex(G.main, obedit, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -503,6 +502,7 @@ bool ED_object_editmode_exit(bContext *C, int flag)
|
|||||||
|
|
||||||
bool ED_object_editmode_enter(bContext *C, int flag)
|
bool ED_object_editmode_enter(bContext *C, int flag)
|
||||||
{
|
{
|
||||||
|
Main *bmain = CTX_data_main(C);
|
||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
Base *base = NULL;
|
Base *base = NULL;
|
||||||
Object *ob;
|
Object *ob;
|
||||||
@ -563,7 +563,7 @@ bool ED_object_editmode_enter(bContext *C, int flag)
|
|||||||
ok = 1;
|
ok = 1;
|
||||||
scene->obedit = ob; /* context sees this */
|
scene->obedit = ob; /* context sees this */
|
||||||
|
|
||||||
const bool use_key_index = mesh_needs_keyindex(ob->data);
|
const bool use_key_index = mesh_needs_keyindex(bmain, ob->data);
|
||||||
|
|
||||||
EDBM_mesh_make(ob, scene->toolsettings->selectmode, use_key_index);
|
EDBM_mesh_make(ob, scene->toolsettings->selectmode, use_key_index);
|
||||||
|
|
||||||
|
@ -1372,6 +1372,7 @@ static void render_view3d_free(void *customdata)
|
|||||||
|
|
||||||
static bool render_view3d_flag_changed(RenderEngine *engine, const bContext *C)
|
static bool render_view3d_flag_changed(RenderEngine *engine, const bContext *C)
|
||||||
{
|
{
|
||||||
|
Main *bmain = CTX_data_main(C);
|
||||||
RegionView3D *rv3d = CTX_wm_region_view3d(C);
|
RegionView3D *rv3d = CTX_wm_region_view3d(C);
|
||||||
View3D *v3d = CTX_wm_view3d(C);
|
View3D *v3d = CTX_wm_view3d(C);
|
||||||
ARegion *ar = CTX_wm_region(C);
|
ARegion *ar = CTX_wm_region(C);
|
||||||
@ -1408,7 +1409,7 @@ static bool render_view3d_flag_changed(RenderEngine *engine, const bContext *C)
|
|||||||
|
|
||||||
/* load editmesh */
|
/* load editmesh */
|
||||||
if (scene->obedit)
|
if (scene->obedit)
|
||||||
ED_object_editmode_load(scene->obedit);
|
ED_object_editmode_load(bmain, scene->obedit);
|
||||||
}
|
}
|
||||||
|
|
||||||
engine->update_flag = 0;
|
engine->update_flag = 0;
|
||||||
|
@ -114,9 +114,10 @@ static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op,
|
|||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
Sequence *last_seq = BKE_sequencer_active_get(scene);
|
Sequence *last_seq = BKE_sequencer_active_get(scene);
|
||||||
if (last_seq && last_seq->strip && SEQ_HAS_PATH(last_seq)) {
|
if (last_seq && last_seq->strip && SEQ_HAS_PATH(last_seq)) {
|
||||||
|
Main *bmain = CTX_data_main(C);
|
||||||
char path[FILE_MAX];
|
char path[FILE_MAX];
|
||||||
BLI_strncpy(path, last_seq->strip->dir, sizeof(path));
|
BLI_strncpy(path, last_seq->strip->dir, sizeof(path));
|
||||||
BLI_path_abs(path, G.main->name);
|
BLI_path_abs(path, bmain->name);
|
||||||
RNA_string_set(op->ptr, identifier, path);
|
RNA_string_set(op->ptr, identifier, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,8 +174,10 @@ static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
|
static void seq_load_operator_info(SeqLoadInfo *seq_load, bContext *C, wmOperator *op)
|
||||||
{
|
{
|
||||||
|
Main *bmain = CTX_data_main(C);
|
||||||
|
|
||||||
PropertyRNA *prop;
|
PropertyRNA *prop;
|
||||||
const bool relative = (prop = RNA_struct_find_property(op->ptr, "relative_path")) && RNA_property_boolean_get(op->ptr, prop);
|
const bool relative = (prop = RNA_struct_find_property(op->ptr, "relative_path")) && RNA_property_boolean_get(op->ptr, prop);
|
||||||
int is_file = -1;
|
int is_file = -1;
|
||||||
@ -196,7 +199,7 @@ static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((is_file != -1) && relative)
|
if ((is_file != -1) && relative)
|
||||||
BLI_path_rel(seq_load->path, G.main->name);
|
BLI_path_rel(seq_load->path, bmain->name);
|
||||||
|
|
||||||
|
|
||||||
if ((prop = RNA_struct_find_property(op->ptr, "frame_end"))) {
|
if ((prop = RNA_struct_find_property(op->ptr, "frame_end"))) {
|
||||||
@ -545,7 +548,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
|
|||||||
SeqLoadInfo seq_load;
|
SeqLoadInfo seq_load;
|
||||||
int tot_files;
|
int tot_files;
|
||||||
|
|
||||||
seq_load_operator_info(&seq_load, op);
|
seq_load_operator_info(&seq_load, C, op);
|
||||||
|
|
||||||
if (seq_load.flag & SEQ_LOAD_REPLACE_SEL)
|
if (seq_load.flag & SEQ_LOAD_REPLACE_SEL)
|
||||||
ED_sequencer_deselect_all(scene);
|
ED_sequencer_deselect_all(scene);
|
||||||
@ -855,7 +858,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
|
|||||||
StripElem *se;
|
StripElem *se;
|
||||||
const bool use_placeholders = RNA_boolean_get(op->ptr, "use_placeholders");
|
const bool use_placeholders = RNA_boolean_get(op->ptr, "use_placeholders");
|
||||||
|
|
||||||
seq_load_operator_info(&seq_load, op);
|
seq_load_operator_info(&seq_load, C, op);
|
||||||
|
|
||||||
/* images are unique in how they handle this - 1 per strip elem */
|
/* images are unique in how they handle this - 1 per strip elem */
|
||||||
if (use_placeholders) {
|
if (use_placeholders) {
|
||||||
|
@ -3885,13 +3885,14 @@ void SEQUENCER_OT_change_path(struct wmOperatorType *ot)
|
|||||||
|
|
||||||
static int sequencer_export_subtitles_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
|
static int sequencer_export_subtitles_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
|
||||||
{
|
{
|
||||||
|
Main *bmain = CTX_data_main(C);
|
||||||
if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
|
if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
|
||||||
char filepath[FILE_MAX];
|
char filepath[FILE_MAX];
|
||||||
|
|
||||||
if (G.main->name[0] == 0)
|
if (bmain->name[0] == '\0')
|
||||||
BLI_strncpy(filepath, "untitled", sizeof(filepath));
|
BLI_strncpy(filepath, "untitled", sizeof(filepath));
|
||||||
else
|
else
|
||||||
BLI_strncpy(filepath, G.main->name, sizeof(filepath));
|
BLI_strncpy(filepath, bmain->name, sizeof(filepath));
|
||||||
|
|
||||||
BLI_replace_extension(filepath, sizeof(filepath), ".srt");
|
BLI_replace_extension(filepath, sizeof(filepath), ".srt");
|
||||||
RNA_string_set(op->ptr, "filepath", filepath);
|
RNA_string_set(op->ptr, "filepath", filepath);
|
||||||
|
@ -201,7 +201,7 @@ bool ED_editors_flush_edits(const bContext *C, bool for_render)
|
|||||||
else if (ob->mode & OB_MODE_EDIT) {
|
else if (ob->mode & OB_MODE_EDIT) {
|
||||||
/* get editmode results */
|
/* get editmode results */
|
||||||
has_edited = true;
|
has_edited = true;
|
||||||
ED_object_editmode_load(ob);
|
ED_object_editmode_load(bmain, ob);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -474,9 +474,9 @@ void rna_Object_dm_info(struct Object *ob, int type, char *result)
|
|||||||
}
|
}
|
||||||
#endif /* NDEBUG */
|
#endif /* NDEBUG */
|
||||||
|
|
||||||
static int rna_Object_update_from_editmode(Object *ob)
|
static int rna_Object_update_from_editmode(Object *ob, Main *bmain)
|
||||||
{
|
{
|
||||||
return ED_object_editmode_load(ob);
|
return ED_object_editmode_load(bmain, ob);
|
||||||
}
|
}
|
||||||
#else /* RNA_RUNTIME */
|
#else /* RNA_RUNTIME */
|
||||||
|
|
||||||
@ -702,6 +702,7 @@ void RNA_api_object(StructRNA *srna)
|
|||||||
|
|
||||||
func = RNA_def_function(srna, "update_from_editmode", "rna_Object_update_from_editmode");
|
func = RNA_def_function(srna, "update_from_editmode", "rna_Object_update_from_editmode");
|
||||||
RNA_def_function_ui_description(func, "Load the objects edit-mode data into the object data");
|
RNA_def_function_ui_description(func, "Load the objects edit-mode data into the object data");
|
||||||
|
RNA_def_function_flag(func, FUNC_USE_MAIN);
|
||||||
parm = RNA_def_boolean(func, "result", 0, "", "Success");
|
parm = RNA_def_boolean(func, "result", 0, "", "Success");
|
||||||
RNA_def_function_return(func, parm);
|
RNA_def_function_return(func, parm);
|
||||||
|
|
||||||
|
@ -497,7 +497,7 @@ struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct M
|
|||||||
void ED_object_modifier_clear(struct Main *bmain, struct Object *ob) RET_NONE
|
void ED_object_modifier_clear(struct Main *bmain, struct Object *ob) RET_NONE
|
||||||
bool ED_object_editmode_enter(struct bContext *C, int flag) RET_ZERO
|
bool ED_object_editmode_enter(struct bContext *C, int flag) RET_ZERO
|
||||||
bool ED_object_editmode_exit(struct bContext *C, int flag) RET_ZERO
|
bool ED_object_editmode_exit(struct bContext *C, int flag) RET_ZERO
|
||||||
bool ED_object_editmode_load(struct Object *obedit) RET_ZERO
|
bool ED_object_editmode_load(struct Main *bmain, struct Object *obedit) RET_ZERO
|
||||||
void ED_object_check_force_modifiers(struct Main *bmain, struct Scene *scene, struct Object *object) RET_NONE
|
void ED_object_check_force_modifiers(struct Main *bmain, struct Scene *scene, struct Object *object) RET_NONE
|
||||||
bool uiLayoutGetActive(struct uiLayout *layout) RET_ZERO
|
bool uiLayoutGetActive(struct uiLayout *layout) RET_ZERO
|
||||||
int uiLayoutGetOperatorContext(struct uiLayout *layout) RET_ZERO
|
int uiLayoutGetOperatorContext(struct uiLayout *layout) RET_ZERO
|
||||||
|
Loading…
Reference in New Issue
Block a user