Ah OK. Reverted that commit, will look at fixing this properly (unless
you are already doing this?)

-Nicholas

On Mon, Jun 7, 2010 at 2:52 PM, Brecht Van Lommel <[email protected]> wrote:
> Hi Nicholas,
>
> This is not the right fix, the dependency graph should ensure that
> ob->derivedFinal is created before this modifier runs. Previously
> modifiers called mesh_get_derived_final, but with dependency cycles
> this can hang.
>
> Thanks,
> Brecht.
>
> On Mon, Jun 7, 2010 at 8:21 PM, Nicholas Bishop
> <[email protected]> wrote:
>> Revision: 29315
>>          
>> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29315
>> Author:   nicholasbishop
>> Date:     2010-06-07 20:20:59 +0200 (Mon, 07 Jun 2010)
>>
>> Log Message:
>> -----------
>> Fixed bug #21540, Array Modifier Capping refresh on open problem.
>>
>> * Problem was that the modifier directly accessed ob->derivedFinal, but that 
>> wasn't being built if the object was on a different layer. Changed to 
>> mesh_get_derived_final.
>>
>> Notes:
>> * I fixed this for array and boolean, reported in the bug; there might be 
>> other places affected by this mistake. It's an easy fix if so.
>> * The datamask being passed in isn't especially correct. Possibly we should 
>> be accessing the datamask being used to build the array modifier 
>> DerivedMesh? Anyway, at least this will get the mesh to show up in the 
>> viewport.
>>
>> Modified Paths:
>> --------------
>>    trunk/blender/source/blender/modifiers/intern/MOD_array.c
>>    trunk/blender/source/blender/modifiers/intern/MOD_boolean.c
>>
>> Modified: trunk/blender/source/blender/modifiers/intern/MOD_array.c
>> ===================================================================
>> --- trunk/blender/source/blender/modifiers/intern/MOD_array.c   2010-06-07 
>> 17:38:52 UTC (rev 29314)
>> +++ trunk/blender/source/blender/modifiers/intern/MOD_array.c   2010-06-07 
>> 18:20:59 UTC (rev 29315)
>> @@ -211,9 +211,9 @@
>>
>>        /* need to avoid infinite recursion here */
>>        if(amd->start_cap && amd->start_cap != ob)
>> -               start_cap = amd->start_cap->derivedFinal;
>> +               start_cap = mesh_get_derived_final(scene, amd->start_cap, 0);
>>        if(amd->end_cap && amd->end_cap != ob)
>> -               end_cap = amd->end_cap->derivedFinal;
>> +               end_cap = mesh_get_derived_final(scene, amd->end_cap, 0);
>>
>>        unit_m4(offset);
>>
>>
>> Modified: trunk/blender/source/blender/modifiers/intern/MOD_boolean.c
>> ===================================================================
>> --- trunk/blender/source/blender/modifiers/intern/MOD_boolean.c 2010-06-07 
>> 17:38:52 UTC (rev 29314)
>> +++ trunk/blender/source/blender/modifiers/intern/MOD_boolean.c 2010-06-07 
>> 18:20:59 UTC (rev 29315)
>> @@ -85,7 +85,7 @@
>>   int useRenderParams, int isFinalCalc)
>>  {
>>        BooleanModifierData *bmd = (BooleanModifierData*) md;
>> -       DerivedMesh *dm = bmd->object->derivedFinal;
>> +       DerivedMesh *dm = mesh_get_derived_final(md->scene, bmd->object, 0);
>>
>>        /* we do a quick sanity check */
>>        if(dm && (derivedData->getNumFaces(derivedData) > 3)
>>
>>
>> _______________________________________________
>> Bf-blender-cvs mailing list
>> [email protected]
>> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>>
> _______________________________________________
> Bf-committers mailing list
> [email protected]
> http://lists.blender.org/mailman/listinfo/bf-committers
>
_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to