Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-11-06 16:09:58 +0300
committerJacques Lucke <jacques@blender.org>2020-11-06 16:10:31 +0300
commitc32a5ce17c7609c29c832a2d229c60e12d0ccbb5 (patch)
tree730dc17838dfb18d8f2eb7ab005256f08068d4c0
parent62223e98510f2c0d735cb7084134c5213c1cb804 (diff)
Refactor: move Paint lib linking to blenkernel
Ref T76372.
-rw-r--r--source/blender/blenkernel/BKE_paint.h4
-rw-r--r--source/blender/blenkernel/intern/paint.c16
-rw-r--r--source/blender/blenloader/intern/readfile.c34
3 files changed, 29 insertions, 25 deletions
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h
index 59291b1c7cb..a58bf760ad5 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -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
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index 3e8bdbf0481..d726a4b1e37 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -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)
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 187ecd74739..ab6a178ec4d 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -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) {