Skip to content

Releases: IsmAvatar/LateralGM

1.8.189

21 Aug 07:03
Compare
Choose a tag to compare
Secondary Property Link Factory Ownership

This addresses the disposal of the remaining secondary property link
factories by redefining the exception listener given to the factory to
also double as having an "ownership" concept over the factory. That
allows the base resource frame class to mass dispose of all primary and
secondary property links created by factories it has ownership of. It
does so through a static API now provided by the factory class which
keeps track of the owned factories using a WeakHashMap. We have to
remove property links when the frames close for the same reasons we have
to stop sound and sprite playback because garbage collection is never
guaranteed to run and you can not rely on it for cleanup. This solution
was chosen because it's the cleanest and required the least changes to
the existing API and classes. This should hopefully resolve all
remaining cyclical exceptions related to lapsed property links.

1.8.188

20 Aug 15:28
Compare
Choose a tag to compare
Sprite Frame Close Animation Stop

The preview playback timer is now stopped when closing the sprite frame.
This prevents it from continuing to utilize CPU after the frame is
closed and before it is garbage collected. Extracted a helper method to
stop the animation during the frame dispose. The playback stop was not
put in the existing cleanup method, like the sound frame, because then
adding subimages would stop the animation. GM continues to play the
preview while you add more subimages.

1.8.187

20 Aug 03:48
Compare
Choose a tag to compare
Sprite Frame Close External Editor Concurrent Modification Fix

Changes the cleanup loop which stops all of the external subimage
editors to remove the editors using an iterator first. This gets rid of
the concurrent modification exception when you have edited more than
one subimage at the time you save or close the frame. I chose to do it
this way because I didn't want to copy the entire collection. Later the
editors map could possibly be changed to a WeakHashMap which would
automatically remove the keys when the editors are no longer reachable
and eligible for garbage collection. It could also be changed to a
ConcurrentMap which would make it thread safe too.

1.8.186

20 Aug 02:15
Compare
Choose a tag to compare
Spritesheet Deep Copy Splicing

Changes the spritesheet dialog splicing to create deep copies of the
subimages so the original (usually much larger) spritesheet image is not
retained and becomes eligible for garbage collection. The technique used
was benchmarked to be quite fast using source composition which is
basically the same as a bitblt. This fixes the out of bounds errors in
the dialog because the subimage rectangle is intersected by the graphics
clip. The behavior is now the same as GM except for subimage rectangles
that lay on the edge or outside the spritesheet which will not contain
parts of the previous subimage (arguably a bug in GM). Later if the
editor were changed to use texture paging this would be needed anyway
to copy directly into the texture.

1.8.184

16 Aug 01:28
Compare
Choose a tag to compare
Fix PropertyLink Regression

Fixes a small oopsie from f0a0da7bd310cc87d9398b599774b7e723666057
I had made the map change method that I originally added to PropertyLink
call the virtual remove which the subclass property links override. The
subclasses remove the action listener in addition to removing the map
listener super behavior. This effectively caused the control to be
completely unlinked when changing maps, which was not intended, and the
reason game settings wasn't detecting/saving changes. I now made a map
change remove only the correct map listener which fixes everything. So
stiell's original typo in PropertyLink.remove is still fixed and map
changing works correctly again. Also added comments for clarification
so this doesn't break in the future.

1.8.183

29 Jul 04:17
Compare
Choose a tag to compare
Vacuum Shader Editor

* Use token marker cache for efficiency.
* Add missing localization tags.
* Remove precompile checkbox but leave in the model.
* ENIGMA plugin may still be depending on precompile in the model.
* Precompile was never supported by GMSv1.4 at all.
* Move shader type combo after name like GMSv1.4 for consistency.

1.8.182

28 Jul 16:38
Compare
Choose a tag to compare
Tune Instance/Tile Default Name

Put the default name in the map before installing the update listeners.
Obviously this is more consistent because none of the default properties
in the map should fire when initializing to the default value.

1.8.181

27 Jul 23:59
Compare
Choose a tag to compare
Fix BinPlane Integer Deprecation Warning

The Integer.valueOf method can be safely used since reference equality
is not needed or relied upon. The Integer.compareTo method compares the
Integer objects numerically, not referentially.

1.8.180

27 Jul 22:49
Compare
Choose a tag to compare
Clean GMK Tree Reading

* Use Integer.valueOf instead of deprecated Integer constructor.
* Safe because reference equality was not being relied upon for stack.
* Simplify a ternary assignment branch for hasRef boolean.
* Move localization tag to correct line for translated message.

1.8.179

27 Jul 21:52
Compare
Choose a tag to compare
More Vestigial Cleanup

* Add some missing localization tags to Listener class.
* Rewrite the Listener.addNode method for clarity.
* Add a TODO about checking the tree model for changes at close.
* Clarify TODO comment about instance creation ordering.