forked from bartvdbraak/blender
Merge branch 'master' into blender2.8
Conflicts: source/blender/makesrna/intern/rna_image.c source/blender/makesrna/intern/rna_object.c source/blender/makesrna/intern/rna_object_force.c source/blender/makesrna/intern/rna_screen.c source/blender/makesrna/intern/rna_sculpt_paint.c source/blender/makesrna/intern/rna_space.c source/blender/python/bmesh/bmesh_py_types.c source/blender/python/generic/bpy_internal_import.h source/blender/python/intern/bpy_rna_anim.c source/blender/python/intern/gpu_offscreen.c
This commit is contained in:
commit
646412004b
@ -208,6 +208,8 @@ void BKE_library_make_local(
|
||||
void BKE_id_tag_set_atomic(struct ID *id, int tag);
|
||||
void BKE_id_tag_clear_atomic(struct ID *id, int tag);
|
||||
|
||||
bool BKE_id_is_in_gobal_main(struct ID *id);
|
||||
|
||||
/* use when "" is given to new_id() */
|
||||
#define ID_FALLBACK_NAME N_("Untitled")
|
||||
|
||||
|
@ -2558,3 +2558,11 @@ void BKE_id_tag_clear_atomic(ID *id, int tag)
|
||||
{
|
||||
atomic_fetch_and_and_int32(&id->tag, ~tag);
|
||||
}
|
||||
|
||||
/** Check that given ID pointer actually is in G_MAIN.
|
||||
* Main intended use is for debug asserts in places we cannot easily get rid of G_Main... */
|
||||
bool BKE_id_is_in_gobal_main(ID *id) {
|
||||
/* We do not want to fail when id is NULL here, even though this is a bit strange behavior... */
|
||||
return (id == NULL || BLI_findindex(which_libbase(G_MAIN, GS(id->name)), id) != -1);
|
||||
}
|
||||
|
||||
|
@ -657,7 +657,7 @@ void MESH_OT_bevel(wmOperatorType *ot)
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_GRAB_CURSOR | OPTYPE_BLOCKING;
|
||||
|
||||
RNA_def_enum(ot->srna, "offset_type", offset_type_items, 0, "Amount Type", "What distance Amount measures");
|
||||
prop = RNA_def_float(ot->srna, "offset", 0.0f, -1e6f, 1e6f, "Amount", "", 0.0f, 1.0f);
|
||||
prop = RNA_def_float(ot->srna, "offset", 0.0f, -1e6f, 1e6f, "Amount", "", 0.0f, 100.0f);
|
||||
RNA_def_property_float_array_funcs_runtime(prop, NULL, NULL, mesh_ot_bevel_offset_range_func);
|
||||
RNA_def_int(ot->srna, "segments", 1, 1, SEGMENTS_HARD_MAX, "Segments", "Segments for curved edge", 1, 8);
|
||||
RNA_def_float(ot->srna, "profile", 0.5f, PROFILE_HARD_MIN, 1.0f, "Profile",
|
||||
|
@ -150,7 +150,8 @@ void rna_ID_name_set(PointerRNA *ptr, const char *value)
|
||||
{
|
||||
ID *id = (ID *)ptr->data;
|
||||
BLI_strncpy_utf8(id->name + 2, value, sizeof(id->name) - 2);
|
||||
BLI_libblock_ensure_unique_name(G.main, id->name);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(id));
|
||||
BLI_libblock_ensure_unique_name(G_MAIN, id->name);
|
||||
}
|
||||
|
||||
static int rna_ID_name_editable(PointerRNA *ptr, const char **UNUSED(r_info))
|
||||
@ -456,7 +457,9 @@ int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assig
|
||||
short *totcol = give_totcolp_id(id);
|
||||
Material *mat_id = assign_ptr->id.data;
|
||||
if (totcol && (key >= 0 && key < *totcol)) {
|
||||
assign_material_id(G.main, id, mat_id, key + 1);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(id));
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&mat_id->id));
|
||||
assign_material_id(G_MAIN, id, mat_id, key + 1);
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
@ -512,7 +515,8 @@ static void rna_IDMaterials_clear_id(ID *id, Main *bmain, int remove_material_sl
|
||||
static void rna_Library_filepath_set(PointerRNA *ptr, const char *value)
|
||||
{
|
||||
Library *lib = (Library *)ptr->data;
|
||||
BKE_library_filepath_set(G.main, lib, value);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&lib->id));
|
||||
BKE_library_filepath_set(G_MAIN, lib, value);
|
||||
}
|
||||
|
||||
/* ***** ImagePreview ***** */
|
||||
|
@ -341,7 +341,8 @@ static void rna_EditBone_name_set(PointerRNA *ptr, const char *value)
|
||||
BLI_strncpy_utf8(newname, value, sizeof(ebone->name));
|
||||
BLI_strncpy(oldname, ebone->name, sizeof(ebone->name));
|
||||
|
||||
ED_armature_bone_rename(G.main, arm, oldname, newname);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&arm->id));
|
||||
ED_armature_bone_rename(G_MAIN, arm, oldname, newname);
|
||||
}
|
||||
|
||||
static void rna_Bone_name_set(PointerRNA *ptr, const char *value)
|
||||
@ -354,7 +355,8 @@ static void rna_Bone_name_set(PointerRNA *ptr, const char *value)
|
||||
BLI_strncpy_utf8(newname, value, sizeof(bone->name));
|
||||
BLI_strncpy(oldname, bone->name, sizeof(bone->name));
|
||||
|
||||
ED_armature_bone_rename(G.main, arm, oldname, newname);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&arm->id));
|
||||
ED_armature_bone_rename(G_MAIN, arm, oldname, newname);
|
||||
}
|
||||
|
||||
static void rna_EditBone_layer_set(PointerRNA *ptr, const int values[])
|
||||
|
@ -93,7 +93,8 @@ static void rna_Image_source_set(PointerRNA *ptr, int value)
|
||||
|
||||
if (value != ima->source) {
|
||||
ima->source = value;
|
||||
BKE_image_signal(G.main, ima, NULL, IMA_SIGNAL_SRC_CHANGE);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&ima->id));
|
||||
BKE_image_signal(G_MAIN, ima, NULL, IMA_SIGNAL_SRC_CHANGE);
|
||||
DEG_id_tag_update(&ima->id, 0);
|
||||
}
|
||||
}
|
||||
|
@ -327,6 +327,9 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
|
||||
return;
|
||||
}
|
||||
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
|
||||
BLI_assert(BKE_id_is_in_gobal_main(id));
|
||||
|
||||
if (ob->type == OB_EMPTY) {
|
||||
if (ob->data) {
|
||||
id_us_min((ID *)ob->data);
|
||||
@ -339,7 +342,7 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
|
||||
}
|
||||
}
|
||||
else if (ob->type == OB_MESH) {
|
||||
BKE_mesh_assign_object(G.main, ob, (Mesh *)id);
|
||||
BKE_mesh_assign_object(G_MAIN, ob, (Mesh *)id);
|
||||
}
|
||||
else {
|
||||
if (ob->data) {
|
||||
@ -351,7 +354,7 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
|
||||
id_us_plus(id);
|
||||
|
||||
ob->data = id;
|
||||
test_object_materials(G.main, ob, id);
|
||||
test_object_materials(G_MAIN, ob, id);
|
||||
|
||||
if (GS(id->name) == ID_CU)
|
||||
BKE_curve_type_test(ob);
|
||||
@ -738,7 +741,9 @@ static void rna_Object_active_material_set(PointerRNA *ptr, PointerRNA value)
|
||||
Object *ob = (Object *)ptr->id.data;
|
||||
|
||||
DEG_id_tag_update(value.data, 0);
|
||||
assign_material(G.main, ob, value.data, ob->actcol, BKE_MAT_ASSIGN_EXISTING);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
|
||||
BLI_assert(BKE_id_is_in_gobal_main(value.data));
|
||||
assign_material(G_MAIN, ob, value.data, ob->actcol, BKE_MAT_ASSIGN_EXISTING);
|
||||
}
|
||||
|
||||
static int rna_Object_active_material_editable(PointerRNA *ptr, const char **UNUSED(r_info))
|
||||
@ -930,7 +935,9 @@ static void rna_MaterialSlot_material_set(PointerRNA *ptr, PointerRNA value)
|
||||
Object *ob = (Object *)ptr->id.data;
|
||||
int index = (Material **)ptr->data - ob->mat;
|
||||
|
||||
assign_material(G.main, ob, value.data, index + 1, BKE_MAT_ASSIGN_EXISTING);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
|
||||
BLI_assert(BKE_id_is_in_gobal_main(value.data));
|
||||
assign_material(G_MAIN, ob, value.data, index + 1, BKE_MAT_ASSIGN_EXISTING);
|
||||
}
|
||||
|
||||
static int rna_MaterialSlot_link_get(PointerRNA *ptr)
|
||||
|
@ -292,7 +292,9 @@ static void rna_PoseChannel_name_set(PointerRNA *ptr, const char *value)
|
||||
BLI_strncpy_utf8(newname, value, sizeof(pchan->name));
|
||||
BLI_strncpy(oldname, pchan->name, sizeof(pchan->name));
|
||||
|
||||
ED_armature_bone_rename(G.main, ob->data, oldname, newname);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
|
||||
BLI_assert(BKE_id_is_in_gobal_main(ob->data));
|
||||
ED_armature_bone_rename(G_MAIN, ob->data, oldname, newname);
|
||||
}
|
||||
|
||||
static int rna_PoseChannel_has_ik_get(PointerRNA *ptr)
|
||||
|
@ -123,7 +123,7 @@ static void rna_Screen_layout_name_set(PointerRNA *ptr, const char *value)
|
||||
{
|
||||
bScreen *screen = ptr->data;
|
||||
WorkSpace *workspace;
|
||||
WorkSpaceLayout *layout = BKE_workspace_layout_find_global(G.main, screen, &workspace);
|
||||
WorkSpaceLayout *layout = BKE_workspace_layout_find_global(G_MAIN, screen, &workspace);
|
||||
|
||||
if (layout) {
|
||||
BKE_workspace_layout_name_set(workspace, layout, value);
|
||||
|
@ -987,10 +987,12 @@ static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value)
|
||||
SpaceImage *sima = (SpaceImage *)(ptr->data);
|
||||
bScreen *sc = (bScreen *)ptr->id.data;
|
||||
wmWindow *win;
|
||||
Scene *scene = ED_screen_scene_find_with_window(sc, G.main->wm.first, &win);
|
||||
Scene *scene = ED_screen_scene_find_with_window(sc, G_MAIN->wm.first, &win);
|
||||
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
|
||||
Object *obedit = OBEDIT_FROM_VIEW_LAYER(view_layer);
|
||||
ED_space_image_set(G.main, sima, scene, obedit, (Image *)value.data);
|
||||
|
||||
BLI_assert(BKE_id_is_in_gobal_main(value.data));
|
||||
ED_space_image_set(G_MAIN, sima, scene, obedit, (Image *)value.data);
|
||||
}
|
||||
|
||||
static void rna_SpaceImageEditor_mask_set(PointerRNA *ptr, PointerRNA value)
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_DerivedMesh.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_library.h"
|
||||
|
||||
#include "DEG_depsgraph.h"
|
||||
|
||||
@ -903,8 +904,9 @@ static PyObject *bpy_bmesh_to_mesh(BPy_BMesh *self, PyObject *args)
|
||||
|
||||
bm = self->bm;
|
||||
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&me->id));
|
||||
BM_mesh_bm_to_me(
|
||||
G.main, /* XXX UGLY! */
|
||||
G_MAIN, /* XXX UGLY! */
|
||||
bm, me,
|
||||
(&(struct BMeshToMeshParams){
|
||||
.calc_object_remap = true,
|
||||
|
@ -175,7 +175,7 @@ PyObject *bpy_text_import_name(const char *name, int *found)
|
||||
Text *text;
|
||||
char txtname[MAX_ID_NAME - 2];
|
||||
int namelen = strlen(name);
|
||||
//XXX Main *maggie = bpy_import_main ? bpy_import_main:G.main;
|
||||
//XXX Main *maggie = bpy_import_main ? bpy_import_main : G_MAIN;
|
||||
Main *maggie = bpy_import_main;
|
||||
|
||||
*found = 0;
|
||||
@ -224,7 +224,7 @@ PyObject *bpy_text_reimport(PyObject *module, int *found)
|
||||
Text *text;
|
||||
const char *name;
|
||||
const char *filepath;
|
||||
//XXX Main *maggie = bpy_import_main ? bpy_import_main:G.main;
|
||||
//XXX Main *maggie = bpy_import_main ? bpy_import_main : G_MAIN;
|
||||
Main *maggie = bpy_import_main;
|
||||
|
||||
if (!maggie) {
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "BLI_string.h"
|
||||
|
||||
#include "BKE_appdir.h"
|
||||
#include "BKE_global.h" /* XXX, G.main only */
|
||||
#include "BKE_global.h" /* XXX, G_MAIN only */
|
||||
#include "BKE_blender_version.h"
|
||||
#include "BKE_bpath.h"
|
||||
|
||||
@ -138,7 +138,7 @@ static PyObject *bpy_blend_paths(PyObject *UNUSED(self), PyObject *args, PyObjec
|
||||
|
||||
list = PyList_New(0);
|
||||
|
||||
BKE_bpath_traverse_main(G.main, bpy_blend_paths_visit_cb, flag, (void *)list);
|
||||
BKE_bpath_traverse_main(G_MAIN, bpy_blend_paths_visit_cb, flag, (void *)list);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ static PyObject *bpy_lib_write(PyObject *UNUSED(self), PyObject *args, PyObject
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Main *bmain_src = G.main;
|
||||
Main *bmain_src = G_MAIN;
|
||||
int write_flags = 0;
|
||||
|
||||
if (use_relative_remap) {
|
||||
|
@ -7090,7 +7090,7 @@ PyObject *BPY_rna_module(void)
|
||||
PointerRNA ptr;
|
||||
|
||||
/* for now, return the base RNA type rather than a real module */
|
||||
RNA_main_pointer_create(G.main, &ptr);
|
||||
RNA_main_pointer_create(G_MAIN, &ptr);
|
||||
pyrna = (BPy_StructRNA *)pyrna_struct_CreatePyObject(&ptr);
|
||||
|
||||
rna_module_ptr = &pyrna->ptr;
|
||||
@ -7101,9 +7101,9 @@ void BPY_update_rna_module(void)
|
||||
{
|
||||
if (rna_module_ptr) {
|
||||
#if 0
|
||||
RNA_main_pointer_create(G.main, rna_module_ptr);
|
||||
RNA_main_pointer_create(G_MAIN, rna_module_ptr);
|
||||
#else
|
||||
rna_module_ptr->data = G.main; /* just set data is enough */
|
||||
rna_module_ptr->data = G_MAIN; /* just set data is enough */
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_idcode.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_report.h"
|
||||
|
||||
#include "RNA_access.h"
|
||||
@ -267,13 +268,15 @@ PyObject *pyrna_struct_keyframe_insert(BPy_StructRNA *self, PyObject *args, PyOb
|
||||
return PyBool_FromLong(result);
|
||||
}
|
||||
else {
|
||||
ID *id = self->ptr.id.data;
|
||||
struct Depsgraph *depsgraph = CTX_data_depsgraph(BPy_GetContext());
|
||||
ReportList reports;
|
||||
short result;
|
||||
|
||||
BKE_reports_init(&reports, RPT_STORE);
|
||||
|
||||
result = insert_keyframe(G.main, depsgraph, &reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, keytype, options);
|
||||
BLI_assert(BKE_id_is_in_gobal_main(id));
|
||||
result = insert_keyframe(G_MAIN, depsgraph, &reports, id, NULL, group_name, path_full, index, cfra, keytype, options);
|
||||
MEM_freeN((void *)path_full);
|
||||
|
||||
if (BPy_reports_to_error(&reports, PyExc_RuntimeError, true) == -1)
|
||||
|
@ -160,7 +160,7 @@ static PyObject *bpy_user_map(PyObject *UNUSED(self), PyObject *args, PyObject *
|
||||
BPy_StructRNA *pyrna = (BPy_StructRNA *)self;
|
||||
Main *bmain = pyrna->ptr.data;
|
||||
#else
|
||||
Main *bmain = G.main; /* XXX Ugly, but should work! */
|
||||
Main *bmain = G_MAIN; /* XXX Ugly, but should work! */
|
||||
#endif
|
||||
|
||||
PyObject *subset = NULL;
|
||||
@ -230,7 +230,6 @@ static PyObject *bpy_user_map(PyObject *UNUSED(self), PyObject *args, PyObject *
|
||||
lb_index = set_listbasepointers(bmain, lb_array);
|
||||
|
||||
while (lb_index--) {
|
||||
|
||||
if (val_types_bitmap && lb_array[lb_index]->first) {
|
||||
if (!id_check_type(lb_array[lb_index]->first, val_types_bitmap)) {
|
||||
continue;
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "WM_types.h"
|
||||
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_library.h"
|
||||
|
||||
#include "ED_screen.h"
|
||||
|
||||
@ -195,6 +196,8 @@ static PyObject *pygpu_offscreen_draw_view3d(BPy_GPUOffScreen *self, PyObject *a
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BLI_assert(BKE_id_is_in_gobal_main(&scene->id));
|
||||
|
||||
fx = GPU_fx_compositor_create();
|
||||
|
||||
fx_settings = v3d->fx_settings; /* full copy */
|
||||
|
Loading…
Reference in New Issue
Block a user