[Bf-blender-cvs] [fc383cd] multi_previews_id: Add preview to Action datablock.
Bastien Montagne
noreply at git.blender.org
Sat Oct 22 22:09:18 CEST 2016
Commit: fc383cd56ef9223ef2087001a810f56c5002886e
Author: Bastien Montagne
Date: Tue Oct 18 10:38:19 2016 +0200
Branches: multi_previews_id
https://developer.blender.org/rBfc383cd56ef9223ef2087001a810f56c5002886e
Add preview to Action datablock.
Hopefully did not forget anything.
===================================================================
M source/blender/blenkernel/intern/action.c
M source/blender/blenkernel/intern/icons.c
M source/blender/blenloader/intern/readfile.c
M source/blender/blenloader/intern/writefile.c
M source/blender/editors/interface/interface_icons.c
M source/blender/makesdna/DNA_action_types.h
===================================================================
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 470098f..04c00f1 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -63,6 +63,7 @@
#include "BKE_library_remap.h"
#include "BKE_main.h"
#include "BKE_object.h"
+#include "BKE_icons.h"
#include "BIK_api.h"
@@ -115,6 +116,8 @@ void BKE_action_free(bAction *act)
/* Free pose-references (aka local markers) */
BLI_freelistN(&act->markers);
+
+ BKE_previewimg_free(&act->preview);
}
/* .................................. */
@@ -158,6 +161,8 @@ bAction *BKE_action_copy(Main *bmain, bAction *src)
BKE_id_copy_ensure_local(bmain, &src->id, &dst->id);
+ BKE_previewimg_id_copy(&dst->id, &src->id);
+
return dst;
}
diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index b35d1eb..ea0301c 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -377,6 +377,7 @@ PreviewImage **BKE_previewimg_id_get_p(ID *id)
ID_PRV_CASE(ID_OB, Object);
ID_PRV_CASE(ID_GR, Group);
ID_PRV_CASE(ID_SCE, Scene);
+ ID_PRV_CASE(ID_AC, bAction);
#undef ID_PRV_CASE
}
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index c1da78d..6065358 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2545,6 +2545,8 @@ static void direct_link_action(FileData *fd, bAction *act)
agrp->channels.first= newdataadr(fd, agrp->channels.first);
agrp->channels.last= newdataadr(fd, agrp->channels.last);
}
+
+ act->preview = direct_link_preview_image(fd, act->preview);
}
static void lib_link_nladata_strips(FileData *fd, ID *id, ListBase *list)
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index dab6d70..e606f0e 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -818,6 +818,8 @@ static void write_actions(WriteData *wd, ListBase *idbase)
for (marker = act->markers.first; marker; marker = marker->next) {
writestruct(wd, DATA, TimeMarker, 1, marker);
}
+
+ write_previews(wd, act->preview);
}
}
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index a4d5285..2dacbba 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -1490,6 +1490,7 @@ int ui_id_icon_get(const bContext *C, ID *id, const bool big)
case ID_IM: /* fall through */
case ID_WO: /* fall through */
case ID_LA: /* fall through */
+ case ID_AC: /* fall through */
iconid = BKE_icon_id_ensure(id);
/* checks if not exists, or changed */
UI_id_icon_render(C, NULL, id, big, true);
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index f3df909..5994316 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -537,6 +537,8 @@ typedef struct bAction {
int idroot; /* type of ID-blocks that action can be assigned to (if 0, will be set to whatever ID first evaluates it) */
int pad;
+
+ struct PreviewImage *preview;
} bAction;
More information about the Bf-blender-cvs
mailing list