[squeak-dev] The Inbox: MorphicExtras-ct.263.mcz

Thiede, Christoph Christoph.Thiede at student.hpi.uni-potsdam.de
Sat Sep 7 10:51:00 UTC 2019


See HTML below, is that ancestry a problem?


Please also note I moved the FRMorph from the fun to the tools parts bin category. Would you agree with that?

________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von commits at source.squeak.org <commits at source.squeak.org>
Gesendet: Samstag, 7. September 2019 12:44 Uhr
An: squeak-dev at lists.squeakfoundation.org
Betreff: [squeak-dev] The Inbox: MorphicExtras-ct.263.mcz

A new version of MorphicExtras was added to project The Inbox:
http://source.squeak.org/inbox/MorphicExtras-ct.263.mcz

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

Name: MorphicExtras-ct.263
Author: ct
Time: 7 September 2019, 12:35:29.653698 pm
UUID: 7205ede8-7f4d-3842-bb5f-01738abfc5cb
Ancestors: MorphicExtras-ct.262

Switch from preamble to postscript and from DateAndTime to TimeStamp

=============== Diff against MorphicExtras-mt.260 ===============

Item was changed:
  StringMorph subclass: #FrameRateMorph
+        instanceVariableNames: 'lastDisplayTime framesSinceLastDisplay updateInterval mSecsPerFrame framesPerSec'
-        instanceVariableNames: 'lastDisplayTime framesSinceLastDisplay'
         classVariableNames: ''
         poolDictionaries: ''
         category: 'MorphicExtras-Demo'!

Item was changed:
  ----- Method: FrameRateMorph class>>descriptionForPartsBin (in category 'parts bin') -----
  descriptionForPartsBin
         ^ self partName:        'FrameRate' translatedNoop
+                categories:             {'Tools' translatedNoop}
-                categories:             {'Just for Fun' translatedNoop}
                 documentation:  'A readout that allows you to monitor the frame rate of your system' translatedNoop!

Item was added:
+ ----- Method: FrameRateMorph>>framesPerSec (in category 'accessing') -----
+ framesPerSec
+
+        ^ framesPerSec!

Item was changed:
  ----- Method: FrameRateMorph>>initialize (in category 'initialization') -----
  initialize
  "initialize the state of the receiver"
         super initialize.
  ""
+        lastDisplayTime := DateAndTime new.
-        lastDisplayTime := 0.
         framesSinceLastDisplay := 0.
+        self updateInterval: 500 milliSeconds.
         self font: (Preferences standardMenuFont emphasized: 1).
  !

Item was added:
+ ----- Method: FrameRateMorph>>mSecsPerFrame (in category 'accessing') -----
+ mSecsPerFrame
+
+        ^ mSecsPerFrame!

Item was changed:
  ----- Method: FrameRateMorph>>step (in category 'stepping and presenter') -----
  step
         "Compute and display (every half second or so) the current framerate"

+        | now timePassed |
-        | now mSecs mSecsPerFrame framesPerSec newContents |
         framesSinceLastDisplay := framesSinceLastDisplay + 1.
+        now := DateAndTime now.
+        timePassed := now - lastDisplayTime.
+        (timePassed > self updateInterval) ifTrue:
+                [| mSecs |
+                mSecs := timePassed asMilliSeconds.
+                mSecsPerFrame := mSecs // framesSinceLastDisplay.
-        now := Time millisecondClockValue.
-        mSecs := now - lastDisplayTime.
-        (mSecs > 500 or: [mSecs < 0 "clock wrap-around"]) ifTrue:
-                [mSecsPerFrame := mSecs // framesSinceLastDisplay.
                 framesPerSec := (framesSinceLastDisplay * 1000) // mSecs.
+                self contents: ('{1} mSecs ({2} frame{3}/sec)'
+                        format: {mSecsPerFrame. framesPerSec. framesPerSec = 1 ifTrue: [''] ifFalse: ['s']}).
-                newContents := mSecsPerFrame printString, ' mSecs (', framesPerSec printString, ' frame', (framesPerSec = 1 ifTrue: [''] ifFalse: ['s']), '/sec)'.
-                self contents: newContents.
                 lastDisplayTime := now.
                 framesSinceLastDisplay := 0]
         ifFalse:
                 ["Ensure at least one pixel is drawn per frame"
                 Preferences higherPerformance ifTrue: [self invalidRect: (self position extent: 1 at 1)]]!

Item was added:
+ ----- Method: FrameRateMorph>>updateInterval (in category 'accessing') -----
+ updateInterval
+
+        ^ updateInterval!

Item was added:
+ ----- Method: FrameRateMorph>>updateInterval: (in category 'accessing') -----
+ updateInterval: aNumber
+
+        updateInterval := aNumber!

Item was changed:
+ (PackageInfo named: 'MorphicExtras') postscript: 'FrameRateMorph allSubInstances do: [:frm | | wasStepping |
+        wasStepping := frm isStepping.
+        wasStepping ifTrue: [frm stopStepping].
+        frm
+                instVarNamed: #lastDisplayTime
+                        put: DateAndTime now;
+                updateInterval: 500 milliSeconds.
+        wasStepping ifTrue: [frm startStepping]].'!
- (PackageInfo named: 'MorphicExtras') postscript: 'TrashCanMorph preserveTrash: Preferences preserveTrash.
- TrashCanMorph slideDismissalsToTrash: Preferences slideDismissalsToTrash.
-
- Preferences removePreference: #preserveTrash.
- Preferences removePreference: #slideDismissalsToTrash.'!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190907/05807a2c/attachment.html>


More information about the Squeak-dev mailing list