[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57142] trunk/blender/source/blender/ blenkernel/intern/DerivedMesh.c: fix debug derived mesh print function, layers in the customdata that were NULL were not printed.
Campbell Barton
ideasman42 at gmail.com
Thu May 30 15:13:43 CEST 2013
Revision: 57142
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57142
Author: campbellbarton
Date: 2013-05-30 13:13:43 +0000 (Thu, 30 May 2013)
Log Message:
-----------
fix debug derived mesh print function, layers in the customdata that were NULL were not printed.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2013-05-30 12:05:28 UTC (rev 57141)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2013-05-30 13:13:43 UTC (rev 57142)
@@ -3114,22 +3114,24 @@
#ifndef NDEBUG
#include "BLI_dynstr.h"
-static void dm_debug_info_layers(DynStr *dynstr, DerivedMesh *dm, void *(*getElemDataArray)(DerivedMesh *, int))
+static void dm_debug_info_layers(DynStr *dynstr, DerivedMesh *dm, CustomData *cd,
+ void *(*getElemDataArray)(DerivedMesh *, int))
{
int type;
for (type = 0; type < CD_NUMTYPES; type++) {
- /* note: doesnt account for multiple layers */
- void *pt = getElemDataArray(dm, type);
- if (pt) {
+ if (CustomData_has_layer(cd, type)) {
+ /* note: doesnt account for multiple layers */
const char *name = CustomData_layertype_name(type);
const int size = CustomData_sizeof(type);
+ const void *pt = getElemDataArray(dm, type);
+ const int pt_size = pt ? (int)(MEM_allocN_len(pt) / size) : 0;
const char *structname;
int structnum;
CustomData_file_write_info(type, &structname, &structnum);
BLI_dynstr_appendf(dynstr,
" dict(name='%s', struct='%s', type=%d, ptr='%p', elem=%d, length=%d),\n",
- name, structname, type, (void *)pt, size, (int)(MEM_allocN_len(pt) / size));
+ name, structname, type, (void *)pt, size, pt_size);
}
}
}
@@ -3156,25 +3158,25 @@
BLI_dynstr_appendf(dynstr, " 'deformedOnly': %d,\n", dm->deformedOnly);
BLI_dynstr_appendf(dynstr, " 'vertexLayers': (\n");
- dm_debug_info_layers(dynstr, dm, dm->getVertDataArray);
+ dm_debug_info_layers(dynstr, dm, &dm->vertData, dm->getVertDataArray);
BLI_dynstr_appendf(dynstr, " ),\n");
+ BLI_dynstr_appendf(dynstr, " 'edgeLayers': (\n");
+ dm_debug_info_layers(dynstr, dm, &dm->edgeData, dm->getEdgeDataArray);
+ BLI_dynstr_appendf(dynstr, " ),\n");
+
BLI_dynstr_appendf(dynstr, " 'loopLayers': (\n");
- dm_debug_info_layers(dynstr, dm, DM_get_loop_data_layer);
+ dm_debug_info_layers(dynstr, dm, &dm->loopData, dm->getLoopDataArray);
BLI_dynstr_appendf(dynstr, " ),\n");
- BLI_dynstr_appendf(dynstr, " 'edgeLayers': (\n");
- dm_debug_info_layers(dynstr, dm, dm->getEdgeDataArray);
+ BLI_dynstr_appendf(dynstr, " 'polyLayers': (\n");
+ dm_debug_info_layers(dynstr, dm, &dm->polyData, dm->getPolyDataArray);
BLI_dynstr_appendf(dynstr, " ),\n");
BLI_dynstr_appendf(dynstr, " 'tessFaceLayers': (\n");
- dm_debug_info_layers(dynstr, dm, dm->getTessFaceDataArray);
+ dm_debug_info_layers(dynstr, dm, &dm->faceData, dm->getTessFaceDataArray);
BLI_dynstr_appendf(dynstr, " ),\n");
- BLI_dynstr_appendf(dynstr, " 'polyLayers': (\n");
- dm_debug_info_layers(dynstr, dm, DM_get_poly_data_layer);
- BLI_dynstr_appendf(dynstr, " ),\n");
-
BLI_dynstr_appendf(dynstr, "}\n");
ret = BLI_dynstr_get_cstring(dynstr);
More information about the Bf-blender-cvs
mailing list