Releases: tabularelf/Stickers
Releases · tabularelf/Stickers
Stickers v2.0.8 - Hotfix
Note: Updated to 2024.13
Fixed
- Added array length checks for fetched tags on game startup
Stickers v2.0.7
Added
.SetImageDate(), for setting image data as needed per instance. Note:__STICKERS_STORE_IMAGE_DATAis needed.
Changed
__STICKERS_STORE_IMAGE_DATAis now per instance settable. The config will remain for now.- Due to a bug,
__STICKERS_STACK_ON_TOPand__STICKERS_STORE_IMAGE_DATAcannot be used together currently.
Stickers v2.0.6
Added
- Lots of new config options!
- Some of the config options were added due to no necessarily needing them 24/7. Others were added due to new features from below.
.ClearFromDistance(x, y, [distance])- Clears regions that are too far away from the supplied x/y coordinate. Default distance is the region width + padding width.- A config variant exists for autoremoving regions that are too far, when
.Draw()or.DrawCamera()is called. .Export()- Exports Stickers instance as a buffer. (Requires a config toggle!).Import(buffer)- Imports a Sticker instance buffer. (Requires a config toggle!).GetByteSize()- Returns the current byte size of all of the Sticker regions & vertex buffers for the instance..SortRegions(x, y)- Sorts regions to try and fetch the closest region to the new.Add*call.- A config variant exists for autosorting on each
.Add*call periodically. - Vertex Buffer recyling. Vertex buffers can now be reused as they are cleared/discarded. Particularly useful when you have a high stickers count.
- A config exists to disable this.
StickersClearRecycling()- Added as per above to allow clearing out vertex buffers whenever necessary.StickersGetRecyclingByteSize()- Gets the current size of the recycling bin for the vertex buffers, in bytes..DrawCamera([camera])- Draws from the provided camera. Default is assigned the current view camera..AddBasic(sprite_index, image_index, x, y)- Adds a very basic sprite, with no scale, colour, depth or angle..AddSimple(sprite_index, image_index, x, y, [colour], [alpha])- Adds a very simple sprite, with no scale, depth or angle. Defaults arec_white,1..AddSimpleAngle(sprite_index, image_index, x, y, [angle], [colour], [alpha])- Adds a simple sprite, with no scale or depth. Defaults are0,c_white,1..AddFull(sprite_index, image_index, x, y, [xscale], [yscale], [angle], [colour], [alpha], [depth])- Adds a sprite with full parameters. Defaults are1,1,0,c_white,1,0.
Changed
- Made region size static on creation.
- Made freezing static on creation.
- As per above, the new arguments for
Stickersis as follows. `new Stickers(MaxStickers, [regionWidth], [regionHeight], [freeze]) - Removed default arguments for
.Draw(), in favour of.DrawCamera(). - Optimized
.Add()so it tries to take the shortest path possible. (For when one is unsure what specific sprite they need.) - Note: The other
.Add*()methods are MUCH faster than calling.Add()in almost all cases, but provide an OK middleground. - The underlying buffer system has been changed to purely a 2 vertex buffer system, with a optional third vertex buffer for frozen Sticker instances. Adding a significant performance improvement.
Removed
- Distrbution is no longer supported.
- Manual update is no longer supported. (This is now always on, due to optimizations made to the vertex buffer system).
.Update()is now removed as per above.
Stickers v1.2.2
Fixed
- Removed overly cautious optimization that prevented stickers from drawing properly when limit is reached.
Stickers v1.2.1
Added
- New
.GetImageData(x, y, [leftpad], [toppad], [rightpad], [bottompad], [sortbydepth])function, that will fetch all image-related data from the current position. As a result, a macro was introduced known as__STICKERS_STORE_IMAGE_DATAto allow storing said image data (as it normally isn't stored). - (Internal) Fast path for GameMaker 2023.11 and newer, that will utilize some new vertex buffer functions for faster updating the internal Sticker buffers.
Fixed
- Sprite cropping offsets not properly applied. Now all sprites are respected to their original positioning.
Changed
- (Internal) Sprite caching has been reworked.
Stickers v1.1.0
Added
.ClearRegion(x, y)has been added to allow to clear from a specific region for Sticker instances.StickersClearCacheSprite(sprite, ...)clears select sprite indexes from the cache.- (Internal) Added in actual region classes. (See below for more)
Changed
- Massively reworked parts of the pipeline
- Buffer writes are now immediate, as oppose to pushing onto a stack of decals to update (vertex buffers only update on the next
.Draw()or.Update()call) - Now caches the last updated region and vertex buffer. (Speeds up adding decals to the same area)
- Added in additional Feather JSDOC
Stickers v1.0.0
- Initial Release