forked from bartvdbraak/blender
fix for r36399
- missing copy, free calls to curve falloff. - missing localizing call for texture preview. - also moved versioning into do_versions()
This commit is contained in:
parent
9736061c07
commit
84d55542c3
@ -486,7 +486,10 @@ void free_texture(Tex *tex)
|
||||
|
||||
if(tex->coba) MEM_freeN(tex->coba);
|
||||
if(tex->env) BKE_free_envmap(tex->env);
|
||||
if(tex->pd) BKE_free_pointdensity(tex->pd);
|
||||
if(tex->pd) {
|
||||
curvemapping_free(tex->pd->falloff_curve);
|
||||
BKE_free_pointdensity(tex->pd);
|
||||
}
|
||||
if(tex->vd) BKE_free_voxeldata(tex->vd);
|
||||
BKE_free_animdata((struct ID *)tex);
|
||||
|
||||
@ -762,9 +765,15 @@ Tex *copy_texture(Tex *tex)
|
||||
|
||||
if(texn->coba) texn->coba= MEM_dupallocN(texn->coba);
|
||||
if(texn->env) texn->env= BKE_copy_envmap(texn->env);
|
||||
if(texn->pd) texn->pd= MEM_dupallocN(texn->pd);
|
||||
|
||||
if(texn->pd) {
|
||||
texn->pd= MEM_dupallocN(texn->pd);
|
||||
if(texn->pd->falloff_curve) {
|
||||
texn->pd->falloff_curve = curvemapping_copy(texn->pd->falloff_curve);
|
||||
}
|
||||
}
|
||||
|
||||
if(texn->vd) texn->vd= MEM_dupallocN(texn->vd);
|
||||
|
||||
if(tex->preview) texn->preview = BKE_previewimg_copy(tex->preview);
|
||||
|
||||
if(tex->nodetree) {
|
||||
@ -802,6 +811,8 @@ Tex *localize_texture(Tex *tex)
|
||||
texn->pd->coba= MEM_dupallocN(texn->pd->coba);
|
||||
}
|
||||
|
||||
texn->pd->falloff_curve= curvemapping_copy(texn->pd->falloff_curve);
|
||||
|
||||
}
|
||||
if(texn->vd) {
|
||||
texn->vd= MEM_dupallocN(texn->vd);
|
||||
|
@ -2964,20 +2964,9 @@ static void direct_link_texture(FileData *fd, Tex *tex)
|
||||
tex->pd->point_tree = NULL;
|
||||
tex->pd->coba= newdataadr(fd, tex->pd->coba);
|
||||
tex->pd->falloff_curve= newdataadr(fd, tex->pd->falloff_curve);
|
||||
|
||||
/*hack to avoid a do_versions patch*/
|
||||
if (tex->pd->falloff_speed_scale == 0.0)
|
||||
tex->pd->falloff_speed_scale = 100.0;
|
||||
|
||||
if (!tex->pd->falloff_curve) {
|
||||
tex->pd->falloff_curve = curvemapping_add(1, 0, 0, 1, 1);
|
||||
|
||||
tex->pd->falloff_curve->preset = CURVE_PRESET_LINE;
|
||||
tex->pd->falloff_curve->cm->flag &= ~CUMA_EXTEND_EXTRAPOLATE;
|
||||
curvemap_reset(tex->pd->falloff_curve->cm, &tex->pd->falloff_curve->clipr, tex->pd->falloff_curve->preset, CURVEMAP_SLOPE_POSITIVE);
|
||||
curvemapping_changed(tex->pd->falloff_curve, 0);
|
||||
} else
|
||||
if(tex->pd->falloff_curve) {
|
||||
direct_link_curvemapping(fd, tex->pd->falloff_curve);
|
||||
}
|
||||
}
|
||||
|
||||
tex->vd= newdataadr(fd, tex->vd);
|
||||
@ -11637,6 +11626,26 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
/* Initialize texture point density curve falloff */
|
||||
Tex *tex;
|
||||
for(tex= main->tex.first; tex; tex= tex->id.next) {
|
||||
if(tex->pd) {
|
||||
if (tex->pd->falloff_speed_scale == 0.0)
|
||||
tex->pd->falloff_speed_scale = 100.0;
|
||||
|
||||
if (!tex->pd->falloff_curve) {
|
||||
tex->pd->falloff_curve = curvemapping_add(1, 0, 0, 1, 1);
|
||||
|
||||
tex->pd->falloff_curve->preset = CURVE_PRESET_LINE;
|
||||
tex->pd->falloff_curve->cm->flag &= ~CUMA_EXTEND_EXTRAPOLATE;
|
||||
curvemap_reset(tex->pd->falloff_curve->cm, &tex->pd->falloff_curve->clipr, tex->pd->falloff_curve->preset, CURVEMAP_SLOPE_POSITIVE);
|
||||
curvemapping_changed(tex->pd->falloff_curve, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
|
||||
|
Loading…
Reference in New Issue
Block a user