[Bf-blender-cvs] [80999ca] cycles-ptex-12: Update Blend file saving/loading for Ptex
Nicholas Bishop
noreply at git.blender.org
Mon Jan 26 02:05:08 CET 2015
Commit: 80999ca70a90c6662653f365d2678630f2942354
Author: Nicholas Bishop
Date: Thu Jan 22 14:31:52 2015 +0100
Branches: cycles-ptex-12
https://developer.blender.org/rB80999ca70a90c6662653f365d2678630f2942354
Update Blend file saving/loading for Ptex
===================================================================
M source/blender/blenloader/intern/readfile.c
M source/blender/blenloader/intern/writefile.c
===================================================================
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 5893c22..f975205 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4185,6 +4185,14 @@ static void direct_link_customdata(FileData *fd, CustomData *data, int count)
direct_link_mdisps(fd, count, layer->data, layer->flag & CD_FLAG_EXTERNAL);
else if (layer->type == CD_GRID_PAINT_MASK)
direct_link_grid_paint_mask(fd, count, layer->data);
+ else if (layer->type == CD_LOOP_PTEX) {
+ MLoopPtex *loop_ptex = layer->data;
+ int j;
+ for (j = 0; j < count; ++j) {
+ loop_ptex[j].data = newdataadr(fd, loop_ptex[j].data);
+ loop_ptex[j].image = NULL;
+ }
+ }
i++;
}
}
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 1de2b6b..b2c1166 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -153,6 +153,7 @@
#include "BKE_library.h" // for set_listbasepointers
#include "BKE_main.h"
#include "BKE_node.h"
+#include "BKE_ptex.h"
#include "BKE_report.h"
#include "BKE_sequencer.h"
#include "BKE_subsurf.h"
@@ -1867,6 +1868,21 @@ static void write_grid_paint_mask(WriteData *wd, int count, GridPaintMask *grid_
}
}
+static void write_loop_ptex(WriteData *wd, int count, MLoopPtex *loop_ptex)
+{
+ if (loop_ptex) {
+ int i;
+ writestruct(wd, DATA, "MLoopPtex", count, loop_ptex);
+ for (i = 0; i < count; ++i) {
+ MLoopPtex *lp = &loop_ptex[i];
+ if (lp->data) {
+ const size_t num_bytes = BKE_loop_ptex_data_num_bytes(lp);
+ writedata(wd, DATA, num_bytes, lp->data);
+ }
+ }
+ }
+}
+
static void write_customdata(WriteData *wd, ID *id, int count, CustomData *data, int partial_type, int partial_count)
{
CustomData data_tmp;
@@ -1906,6 +1922,9 @@ static void write_customdata(WriteData *wd, ID *id, int count, CustomData *data,
else if (layer->type == CD_GRID_PAINT_MASK) {
write_grid_paint_mask(wd, count, layer->data);
}
+ else if (layer->type == CD_LOOP_PTEX) {
+ write_loop_ptex(wd, count, layer->data);
+ }
else {
CustomData_file_write_info(layer->type, &structname, &structnum);
if (structnum) {
More information about the Bf-blender-cvs
mailing list