[Bf-blender-cvs] [87f3139] cycles-ptex-49: Temporary hack to ensure packed image pointer
Nicholas Bishop
noreply at git.blender.org
Fri Feb 6 17:35:21 CET 2015
Commit: 87f3139a41406b96b431f98bf140d2b5092d5eed
Author: Nicholas Bishop
Date: Sun Jan 25 22:48:39 2015 +0100
Branches: cycles-ptex-49
https://developer.blender.org/rB87f3139a41406b96b431f98bf140d2b5092d5eed
Temporary hack to ensure packed image pointer
===================================================================
M source/blender/blenkernel/intern/mesh.c
===================================================================
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 7757bab..a614d49 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -52,6 +52,7 @@
#include "BKE_material.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
+#include "BKE_ptex.h"
#include "BKE_key.h"
#include "BKE_mball.h"
#include "BKE_depsgraph.h"
@@ -2249,6 +2250,9 @@ Mesh *BKE_mesh_new_from_object(
if (calc_undeformed)
mask |= CD_MASK_ORCO;
+ // TODO
+ mask |= CD_MASK_LOOP_PTEX;
+
/* Write the display mesh into the dummy mesh */
if (render)
dm = mesh_create_derived_render(sce, ob, mask);
@@ -2256,8 +2260,41 @@ Mesh *BKE_mesh_new_from_object(
dm = mesh_create_derived_view(sce, ob, mask);
tmpmesh = BKE_mesh_add(bmain, "Mesh");
- DM_to_mesh(dm, tmpmesh, ob, mask);
+ DM_to_mesh(dm, tmpmesh, ob, mask | CD_MASK_TESSFACE_PTEX);
dm->release(dm);
+
+ // TODO: very TODO
+ {
+ Mesh *src_me = ob->data;
+ const int num_layers =
+ CustomData_number_of_layers(&tmpmesh->ldata, CD_LOOP_PTEX);
+ /* const int off = CustomData_get_offset(&tmpmesh->ldata, */
+ /* CD_LOOP_PTEX); */
+ int i;
+
+ BLI_assert(CustomData_number_of_layers(&src_me->ldata,
+ CD_LOOP_PTEX) ==
+ num_layers);
+
+ for (i = 0; i < num_layers; i++) {
+ const char *name = CustomData_get_layer_name(&tmpmesh->ldata,
+ CD_LOOP_PTEX, i);
+ MLoopPtex *dst = CustomData_get_layer_n
+ (&tmpmesh->ldata, CD_LOOP_PTEX, i);
+
+ const MLoopPtex *src = CustomData_get_layer_n
+ (&src_me->ldata, CD_LOOP_PTEX, i);
+
+ if (src && dst && name) {
+ if (src->image) {
+ dst->image = src->image;
+ }
+ else {
+ dst->image = BKE_ptex_mesh_image_get(ob, name);
+ }
+ }
+ }
+ }
}
/* BKE_mesh_add/copy gives us a user count we don't need */
More information about the Bf-blender-cvs
mailing list