Refactor: move Paint lib linking to blenkernel

Ref T76372.
This commit is contained in:
Jacques Lucke
2020-11-06 14:09:58 +01:00
parent 62223e9851
commit c32a5ce17c
3 changed files with 29 additions and 25 deletions

View File

@@ -68,6 +68,7 @@ struct bToolRef;
struct tPaletteColorHSV;
struct BlendWriter;
struct BlendDataReader;
struct BlendLibReader;
enum eOverlayFlags;
@@ -224,6 +225,9 @@ void BKE_paint_blend_write(struct BlendWriter *writer, struct Paint *paint);
void BKE_paint_blend_read_data(struct BlendDataReader *reader,
const struct Scene *scene,
struct Paint *paint);
void BKE_paint_blend_read_lib(struct BlendLibReader *reader,
struct Scene *scene,
struct Paint *paint);
#define SCULPT_FACE_SET_NONE 0

View File

@@ -1210,6 +1210,22 @@ void BKE_paint_blend_read_data(BlendDataReader *reader, const Scene *scene, Pain
BKE_paint_runtime_init(scene->toolsettings, p);
}
void BKE_paint_blend_read_lib(BlendLibReader *reader, Scene *sce, Paint *p)
{
if (p) {
BLO_read_id_address(reader, sce->id.lib, &p->brush);
for (int i = 0; i < p->tool_slots_len; i++) {
if (p->tool_slots[i].brush != NULL) {
BLO_read_id_address(reader, sce->id.lib, &p->tool_slots[i].brush);
}
}
BLO_read_id_address(reader, sce->id.lib, &p->palette);
p->paint_cursor = NULL;
BKE_paint_runtime_init(sce->toolsettings, p);
}
}
/* returns non-zero if any of the face's vertices
* are hidden, zero otherwise */
bool paint_is_face_hidden(const MLoopTri *lt, const MVert *mvert, const MLoop *mloop)

View File

@@ -3859,22 +3859,6 @@ static void composite_patch(bNodeTree *ntree, Scene *scene)
}
}
static void link_paint(BlendLibReader *reader, Scene *sce, Paint *p)
{
if (p) {
BLO_read_id_address(reader, sce->id.lib, &p->brush);
for (int i = 0; i < p->tool_slots_len; i++) {
if (p->tool_slots[i].brush != NULL) {
BLO_read_id_address(reader, sce->id.lib, &p->tool_slots[i].brush);
}
}
BLO_read_id_address(reader, sce->id.lib, &p->palette);
p->paint_cursor = NULL;
BKE_paint_runtime_init(sce->toolsettings, p);
}
}
static void lib_link_sequence_modifiers(BlendLibReader *reader, Scene *scene, ListBase *lb)
{
LISTBASE_FOREACH (SequenceModifierData *, smd, lb) {
@@ -3933,30 +3917,30 @@ static void lib_link_scene(BlendLibReader *reader, Scene *sce)
BLO_read_id_address(reader, sce->id.lib, &sce->set);
BLO_read_id_address(reader, sce->id.lib, &sce->gpd);
link_paint(reader, sce, &sce->toolsettings->imapaint.paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->imapaint.paint);
if (sce->toolsettings->sculpt) {
link_paint(reader, sce, &sce->toolsettings->sculpt->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->sculpt->paint);
}
if (sce->toolsettings->vpaint) {
link_paint(reader, sce, &sce->toolsettings->vpaint->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->vpaint->paint);
}
if (sce->toolsettings->wpaint) {
link_paint(reader, sce, &sce->toolsettings->wpaint->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->wpaint->paint);
}
if (sce->toolsettings->uvsculpt) {
link_paint(reader, sce, &sce->toolsettings->uvsculpt->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->uvsculpt->paint);
}
if (sce->toolsettings->gp_paint) {
link_paint(reader, sce, &sce->toolsettings->gp_paint->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->gp_paint->paint);
}
if (sce->toolsettings->gp_vertexpaint) {
link_paint(reader, sce, &sce->toolsettings->gp_vertexpaint->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->gp_vertexpaint->paint);
}
if (sce->toolsettings->gp_sculptpaint) {
link_paint(reader, sce, &sce->toolsettings->gp_sculptpaint->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->gp_sculptpaint->paint);
}
if (sce->toolsettings->gp_weightpaint) {
link_paint(reader, sce, &sce->toolsettings->gp_weightpaint->paint);
BKE_paint_blend_read_lib(reader, sce, &sce->toolsettings->gp_weightpaint->paint);
}
if (sce->toolsettings->sculpt) {