The Inbox: Morphic-dtl.1366.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Morphic-dtl.1366.mcz

commits-2
David T. Lewis uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-dtl.1366.mcz

==================== Summary ====================

Name: Morphic-dtl.1366
Author: dtl
Time: 15 November 2017, 9:08:25.260401 pm
UUID: e8c69c1d-a8e7-43d5-ab72-50c1f87eaf22
Ancestors: Morphic-dtl.1365

Update from Bob, resolves a related issue.

To: [hidden email]
From: Bob Arning <[hidden email]>
Date: Wed, 15 Nov 2017 20:40:28 -0500
Subject: Re: [squeak-dev] ActiveWorld and World globals

I did encounter an emergency evaluator after posting the first code. My
fix for that one is attached.

=============== Diff against Morphic-dtl.1365 ===============

Item was changed:
  ----- Method: WorldState>>displayWorld:submorphs: (in category 'update cycle') -----
  displayWorld: aWorld submorphs: submorphs
  "Update this world's display."
 
  | deferredUpdateMode handsToDraw allDamage handDamageRects worldDamageRects |
 
  submorphs do: [:m | m fullBounds].  "force re-layout if needed"
  self checkIfUpdateNeeded ifFalse: [^ self].  "display is already up-to-date"
 
  deferredUpdateMode := self doDeferredUpdatingFor: aWorld.
  deferredUpdateMode ifFalse: [self assuredCanvas].
 
+ worldDamageRects := self drawWorld: aWorld submorphs: submorphs invalidAreasOn: self assuredCanvas.  "repair world's damage on canvas"
- worldDamageRects := self drawWorld: aWorld submorphs: submorphs invalidAreasOn: canvas.  "repair world's damage on canvas"
  "self handsDo:[:h| h noticeDamageRects: worldDamageRects]."
  handsToDraw := self selectHandsToDrawForDamage: worldDamageRects.
  handDamageRects := handsToDraw collect: [:h | h savePatchFrom: canvas].
  allDamage := worldDamageRects, handDamageRects.
 
  handsToDraw reverseDo: [:h | canvas fullDrawMorph: h].  "draw hands onto world canvas"
 
  "*make this true to flash damaged areas for testing*"
  Preferences debugShowDamage ifTrue: [aWorld flashRects: allDamage color: Color black].
 
  canvas finish: allDamage.
 
  "quickly copy altered rects of canvas to Display:"
  deferredUpdateMode
  ifTrue: [self forceDamageToScreen: allDamage]
  ifFalse: [canvas showAt: aWorld viewBox origin invalidRects: allDamage].
  handsToDraw do: [:h | h restoreSavedPatchOn: canvas].  "restore world canvas under hands"
  Display deferUpdates: false; forceDisplayUpdate.
  !