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:
authorCampbell Barton <ideasman42@gmail.com>2012-02-05 11:44:40 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-02-05 11:44:40 +0400
commitd5fcaeb874d8dd7caa0c4d7491cd822dbe910d08 (patch)
tree7504b6cd1ded3b846f3ff747324c418ac698f8ab /source/blender/blenkernel/intern/subsurf_ccg.c
parent1d21e2386e39a34a86772e4b6f19791c1635a601 (diff)
sync changes from trunk.
Diffstat (limited to 'source/blender/blenkernel/intern/subsurf_ccg.c')
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c31
1 files changed, 7 insertions, 24 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 36178481419..9547bbaa213 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -494,7 +494,7 @@ static void free_ss_weights(WeightTable *wtable)
MEM_freeN(wtable->weight_table);
}
-static int ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm,
+static void ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm,
float (*vertexCos)[3], int useFlatSubdiv)
{
float creaseFactor = (float) ccgSubSurf_getSubdivisionLevels(ss);
@@ -567,22 +567,21 @@ static int ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm,
static int hasGivenError = 0;
if(!hasGivenError) {
- printf("Unrecoverable error in SubSurf calculation,"
- " mesh is inconsistent.\n");
+ //XXX error("Unrecoverable error in SubSurf calculation,"
+ // " mesh is inconsistent.");
hasGivenError = 1;
}
- return 0;
+ return;
}
- ((int*)ccgSubSurf_getFaceUserData(ss, f))[1] = index ? *index++: i;
+ ((int*)ccgSubSurf_getFaceUserData(ss, f))[1] = (index)? *index++: i;
}
ccgSubSurf_processSync(ss);
BLI_array_free(fVerts);
- return 1;
}
/***/
@@ -1103,11 +1102,6 @@ static void ccgDM_copyFinalFaceArray(DerivedMesh *dm, MFace *mface)
edgeSize, gridSize);
mf->v4 = getFaceIndex(ss, f, S, x + 1, y + 0,
edgeSize, gridSize);
- if (faceFlags) {
- mat_nr = faceFlags[index*2+1];
- mf->flag = faceFlags[index*2];
- } else mf->flag = flag;
-
mf->mat_nr = mat_nr;
mf->flag = flag;
@@ -1209,11 +1203,6 @@ static void ccgDM_copyFinalPolyArray(DerivedMesh *dm, MPoly *mface)
for(x = 0; x < gridSize - 1; x++) {
MPoly *mf = &mface[i];
- if (faceFlags) {
- mat_nr = faceFlags[index*2+1];
- mf->flag = faceFlags[index*2];
- } else mf->flag = flag;
-
mf->mat_nr = mat_nr;
mf->flag = flag;
mf->loopstart = k;
@@ -3304,7 +3293,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
result->freeSS = 1;
} else {
- int useIncremental = 1; //(smd->flags & eSubsurfModifierFlag_Incremental);
+ int useIncremental = (smd->flags & eSubsurfModifierFlag_Incremental);
int levels= (smd->modifier.scene)? get_render_subsurf_level(&smd->modifier.scene->r, smd->levels): smd->levels;
CCGSubSurf *ss;
@@ -3327,13 +3316,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
if(useIncremental && isFinalCalc) {
smd->mCache = ss = _getSubSurf(smd->mCache, levels, useAging|CCG_CALC_NORMALS);
- if (!ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple)) {
- //ccgSubSurf_free(smd->mCache);
- smd->mCache = ss = _getSubSurf(NULL, levels, useAging);
-
- ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple);
-
- }
+ ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple);
result = getCCGDerivedMesh(smd->mCache,
drawInteriorEdges,