Skip to content

Releases: tabularelf/Stickers

Stickers v2.0.8 - Hotfix

18 Nov 00:33

Choose a tag to compare

Note: Updated to 2024.13

Fixed

  • Added array length checks for fetched tags on game startup

Stickers v2.0.7

30 Sep 06:44

Choose a tag to compare

Added

  • .SetImageDate(), for setting image data as needed per instance. Note: __STICKERS_STORE_IMAGE_DATA is needed.

Changed

  • __STICKERS_STORE_IMAGE_DATA is now per instance settable. The config will remain for now.
  • Due to a bug, __STICKERS_STACK_ON_TOP and __STICKERS_STORE_IMAGE_DATA cannot be used together currently.

Stickers v2.0.6

03 Sep 04:49

Choose a tag to compare

Stickers v2.0.6 Pre-release
Pre-release

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 are c_white, 1.
  • .AddSimpleAngle(sprite_index, image_index, x, y, [angle], [colour], [alpha]) - Adds a simple sprite, with no scale or depth. Defaults are 0, c_white, 1.
  • .AddFull(sprite_index, image_index, x, y, [xscale], [yscale], [angle], [colour], [alpha], [depth]) - Adds a sprite with full parameters. Defaults are 1, 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 Stickers is 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

20 Apr 22:41

Choose a tag to compare

Fixed

  • Removed overly cautious optimization that prevented stickers from drawing properly when limit is reached.

Stickers v1.2.1

20 Apr 20:02

Choose a tag to compare

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_DATA to 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

12 Jun 18:28

Choose a tag to compare

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

10 Jun 11:58

Choose a tag to compare

  • Initial Release