Merge branch 'blender-v2.83-release'
This commit is contained in:
commit
67593a41dd
|
@ -58,17 +58,6 @@ static void light_init_data(ID *id)
|
|||
BKE_curvemapping_initialize(la->curfalloff);
|
||||
}
|
||||
|
||||
Light *BKE_light_add(Main *bmain, const char *name)
|
||||
{
|
||||
Light *la;
|
||||
|
||||
la = BKE_libblock_alloc(bmain, ID_LA, name, 0);
|
||||
|
||||
light_init_data(&la->id);
|
||||
|
||||
return la;
|
||||
}
|
||||
|
||||
/**
|
||||
* Only copy internal data of Light ID from source
|
||||
* to already allocated/initialized destination.
|
||||
|
@ -100,6 +89,51 @@ static void light_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
|
|||
}
|
||||
}
|
||||
|
||||
static void light_free_data(ID *id)
|
||||
{
|
||||
Light *la = (Light *)id;
|
||||
|
||||
BKE_curvemapping_free(la->curfalloff);
|
||||
|
||||
/* is no lib link block, but light extension */
|
||||
if (la->nodetree) {
|
||||
ntreeFreeNestedTree(la->nodetree);
|
||||
MEM_freeN(la->nodetree);
|
||||
la->nodetree = NULL;
|
||||
}
|
||||
|
||||
BKE_previewimg_free(&la->preview);
|
||||
BKE_icon_id_delete(&la->id);
|
||||
la->id.icon_id = 0;
|
||||
}
|
||||
|
||||
IDTypeInfo IDType_ID_LA = {
|
||||
.id_code = ID_LA,
|
||||
.id_filter = FILTER_ID_LA,
|
||||
.main_listbase_index = INDEX_ID_LA,
|
||||
.struct_size = sizeof(Light),
|
||||
.name = "Light",
|
||||
.name_plural = "lights",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_LIGHT,
|
||||
.flags = 0,
|
||||
|
||||
.init_data = light_init_data,
|
||||
.copy_data = light_copy_data,
|
||||
.free_data = light_free_data,
|
||||
.make_local = NULL,
|
||||
};
|
||||
|
||||
Light *BKE_light_add(Main *bmain, const char *name)
|
||||
{
|
||||
Light *la;
|
||||
|
||||
la = BKE_libblock_alloc(bmain, ID_LA, name, 0);
|
||||
|
||||
light_init_data(&la->id);
|
||||
|
||||
return la;
|
||||
}
|
||||
|
||||
Light *BKE_light_copy(Main *bmain, const Light *la)
|
||||
{
|
||||
Light *la_copy;
|
||||
|
@ -133,42 +167,3 @@ Light *BKE_light_localize(Light *la)
|
|||
|
||||
return lan;
|
||||
}
|
||||
|
||||
static void light_make_local(Main *bmain, ID *id, const int flags)
|
||||
{
|
||||
BKE_lib_id_make_local_generic(bmain, id, flags);
|
||||
}
|
||||
|
||||
static void light_free_data(ID *id)
|
||||
{
|
||||
Light *la = (Light *)id;
|
||||
|
||||
BKE_curvemapping_free(la->curfalloff);
|
||||
|
||||
/* is no lib link block, but light extension */
|
||||
if (la->nodetree) {
|
||||
ntreeFreeNestedTree(la->nodetree);
|
||||
MEM_freeN(la->nodetree);
|
||||
la->nodetree = NULL;
|
||||
}
|
||||
|
||||
BKE_previewimg_free(&la->preview);
|
||||
BKE_icon_id_delete(&la->id);
|
||||
la->id.icon_id = 0;
|
||||
}
|
||||
|
||||
IDTypeInfo IDType_ID_LA = {
|
||||
.id_code = ID_LA,
|
||||
.id_filter = FILTER_ID_LA,
|
||||
.main_listbase_index = INDEX_ID_LA,
|
||||
.struct_size = sizeof(Light),
|
||||
.name = "Light",
|
||||
.name_plural = "lights",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_LIGHT,
|
||||
.flags = 0,
|
||||
|
||||
.init_data = light_init_data,
|
||||
.copy_data = light_copy_data,
|
||||
.free_data = light_free_data,
|
||||
.make_local = light_make_local,
|
||||
};
|
||||
|
|
|
@ -123,7 +123,7 @@ struct bContext;
|
|||
void BIF_clearTransformOrientation(struct bContext *C);
|
||||
void BIF_removeTransformOrientation(struct bContext *C, struct TransformOrientation *ts);
|
||||
void BIF_removeTransformOrientationIndex(struct bContext *C, int index);
|
||||
void BIF_createTransformOrientation(struct bContext *C,
|
||||
bool BIF_createTransformOrientation(struct bContext *C,
|
||||
struct ReportList *reports,
|
||||
const char *name,
|
||||
const bool use_view,
|
||||
|
|
|
@ -223,6 +223,9 @@ static int delete_orientation_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
|
||||
WM_event_add_notifier(C, NC_SCENE | NA_EDITED, scene);
|
||||
|
||||
struct wmMsgBus *mbus = CTX_wm_message_bus(C);
|
||||
WM_msg_publish_rna_prop(mbus, &scene->id, scene, Scene, transform_orientation_slots);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
|
@ -233,12 +236,11 @@ static int delete_orientation_invoke(bContext *C, wmOperator *op, const wmEvent
|
|||
|
||||
static bool delete_orientation_poll(bContext *C)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
|
||||
if (ED_operator_areaactive(C) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
return ((scene->orientation_slots[SCE_ORIENT_DEFAULT].type >= V3D_ORIENT_CUSTOM) &&
|
||||
(scene->orientation_slots[SCE_ORIENT_DEFAULT].index_custom != -1));
|
||||
}
|
||||
|
@ -264,6 +266,7 @@ static int create_orientation_exec(bContext *C, wmOperator *op)
|
|||
const bool overwrite = RNA_boolean_get(op->ptr, "overwrite");
|
||||
const bool use_view = RNA_boolean_get(op->ptr, "use_view");
|
||||
View3D *v3d = CTX_wm_view3d(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
|
||||
RNA_string_get(op->ptr, "name", name);
|
||||
|
||||
|
@ -274,10 +277,18 @@ static int create_orientation_exec(bContext *C, wmOperator *op)
|
|||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
BIF_createTransformOrientation(C, op->reports, name, use_view, use, overwrite);
|
||||
if (!BIF_createTransformOrientation(C, op->reports, name, use_view, use, overwrite)) {
|
||||
BKE_report(op->reports, RPT_ERROR, "Unable to create orientation");
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
if (use) {
|
||||
struct wmMsgBus *mbus = CTX_wm_message_bus(C);
|
||||
WM_msg_publish_rna_prop(mbus, &scene->id, scene, Scene, transform_orientation_slots);
|
||||
WM_event_add_notifier(C, NC_SCENE | NA_EDITED, scene);
|
||||
}
|
||||
|
||||
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d);
|
||||
WM_event_add_notifier(C, NC_SCENE | NA_EDITED, CTX_data_scene(C));
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
|
|
@ -296,7 +296,7 @@ bool createSpaceNormalTangent(float mat[3][3], const float normal[3], const floa
|
|||
return true;
|
||||
}
|
||||
|
||||
void BIF_createTransformOrientation(bContext *C,
|
||||
bool BIF_createTransformOrientation(bContext *C,
|
||||
ReportList *reports,
|
||||
const char *name,
|
||||
const bool use_view,
|
||||
|
@ -333,6 +333,7 @@ void BIF_createTransformOrientation(bContext *C,
|
|||
if (activate && ts != NULL) {
|
||||
BIF_selectTransformOrientation(C, ts);
|
||||
}
|
||||
return (ts != NULL);
|
||||
}
|
||||
|
||||
TransformOrientation *addMatrixSpace(bContext *C,
|
||||
|
|
Loading…
Reference in New Issue