Revision: 35998 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35998 Author: ton Date: 2011-04-04 13:47:34 +0000 (Mon, 04 Apr 2011) Log Message: ----------- Bugfix #26761
Texture preview render now doesn't increment/decrement material->texture user counts anymore. Blenders library.c code could use some overhaul once to support data relinkage and copying around better. :) Modified Paths: -------------- trunk/blender/source/blender/blenkernel/intern/material.c trunk/blender/source/blender/editors/render/render_preview.c Modified: trunk/blender/source/blender/blenkernel/intern/material.c =================================================================== --- trunk/blender/source/blender/blenkernel/intern/material.c 2011-04-04 13:47:28 UTC (rev 35997) +++ trunk/blender/source/blender/blenkernel/intern/material.c 2011-04-04 13:47:34 UTC (rev 35998) @@ -245,12 +245,11 @@ man= copy_libblock(ma); BLI_remlink(&G.main->mat, man); + /* no increment for texture ID users, in previewrender.c it prevents decrement */ for(a=0; a<MAX_MTEX; a++) { if(ma->mtex[a]) { man->mtex[a]= MEM_mallocN(sizeof(MTex), "copymaterial"); memcpy(man->mtex[a], ma->mtex[a], sizeof(MTex)); - /* free_material decrements! */ - id_us_plus((ID *)man->mtex[a]->tex); } } Modified: trunk/blender/source/blender/editors/render/render_preview.c =================================================================== --- trunk/blender/source/blender/editors/render/render_preview.c 2011-04-04 13:47:28 UTC (rev 35997) +++ trunk/blender/source/blender/editors/render/render_preview.c 2011-04-04 13:47:34 UTC (rev 35998) @@ -1117,11 +1117,20 @@ if(sp->matcopy) { struct IDProperty *properties; + int a; + /* node previews */ shader_preview_updatejob(sp); /* get rid of copied material */ BLI_remlink(&pr_main->mat, sp->matcopy); + + /* free_material decrements texture, prevent this. hack alert! */ + for(a=0; a<MAX_MTEX; a++) { + MTex *mtex= sp->matcopy->mtex[a]; + if(mtex && mtex->tex) mtex->tex= NULL; + } + free_material(sp->matcopy); properties= IDP_GetProperties((ID *)sp->matcopy, FALSE); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs