Hi!
Just to share our latest feature.
We have implemented a simple mechanism in Roassal to prevent the environment to be sluggish with many elements.
The class RTCache has the effect to remove the elements from a view, create a bitmap from them, and add the bitmap to the view. Simple and effective.
Consider the following script:
-=-=—=-=-=—=-=-=—=-=-=—=-=-=—=
v := RTView new.
v @ RTDraggableView.
colors := ColorPalette qualitative colors: 8 scheme:'Set1'.
elements := (RTEllipse new color: [ :aValue | colors atRandom alpha: 0.01 ]; size: #yourself) elementsOn: ((1 to: 500000) collect: [ :vv | 10 atRandom + 5 ]).
elements do: [ :e | e translateTo: 500 atRandom @ 500 atRandom ].
v addAll: elements.
RTCache new cacheView: v.
v
-=-=—=-=-=—=-=-=—=-=-=—=-=-=—=
Without the line "RTCache new cacheView: v.” Pharo would be completely unresponsive. 500 000 elements is quite a lot.
The drawback is that all interaction with the elements are lost. I have some idea on how to add them back. We will work on this in future work.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.