<div dir="ltr"><div><span style="font-size:16px">I was updating and had to change this method to use &#39;self assuredCanvas&#39; because canvas instance variable was nil</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px">WorldState&gt;&gt;displayWorld: aWorld submorphs: submorphs</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>&quot;Update this world&#39;s display.&quot;</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>| deferredUpdateMode handsToDraw allDamage handDamageRects worldDamageRects |</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>submorphs do: [:m | m fullBounds].  &quot;force re-layout if needed&quot;</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>self checkIfUpdateNeeded ifFalse: [^ self].  &quot;display is already up-to-date&quot;</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>deferredUpdateMode := self doDeferredUpdatingFor: aWorld.</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>deferredUpdateMode ifFalse: [self assuredCanvas].</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>worldDamageRects := self drawWorld: aWorld submorphs: submorphs invalidAreasOn: <b>self assuredCanvas</b>.  &quot;repair world&#39;s damage on canvas&quot;</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>&quot;self handsDo:[:h| h noticeDamageRects: worldDamageRects].&quot;</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>handsToDraw := self selectHandsToDrawForDamage: worldDamageRects.</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>handDamageRects := handsToDraw collect: [:h | h savePatchFrom: canvas].</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>allDamage := worldDamageRects, handDamageRects.</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>handsToDraw reverseDo: [:h | canvas fullDrawMorph: h].  &quot;draw hands onto world canvas&quot;</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>&quot;*make this true to flash damaged areas for testing*&quot;</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>Preferences debugShowDamage ifTrue: [aWorld flashRects: allDamage color: Color black].</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>canvas finish: allDamage.</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>&quot;quickly copy altered rects of canvas to Display:&quot;</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>deferredUpdateMode</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">                </span>ifTrue: [self forceDamageToScreen: allDamage]</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">                </span>ifFalse: [canvas showAt: aWorld viewBox origin invalidRects: allDamage].</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>handsToDraw do: [:h | h restoreSavedPatchOn: canvas].  &quot;restore world canvas under hands&quot;</span></div><div><span style="font-size:16px"><span class="" style="white-space:pre">        </span>Display deferUpdates: false; forceDisplayUpdate.</span></div><div><br></div><div>Best,</div><div>Karl</div></div>