Skip to content

Releases: tabularelf/Collage

Collage v1.0.0-Alpha

01 Oct 19:28

Choose a tag to compare

Collage v1.0.0-Alpha Pre-release
Pre-release

Note: This release is specifically targetted for 2024.14. This may change over the course of these alpha/betas.

Added:

  • New Hash-based image collision detection. This majorly slows down the atlas building, so this is disabled by default. (As it is using buffer_md5 and surface to buffer, to determine the collision).
  • This can be toggled on/off individually on top of the config, per Collage instance. Please see __COLLAGE_USE_HASHES for more.
  • With above, adds .SetHashing and .GetHasing.
  • .ToStatic(prefetch, destroyAfter) -> Using texturegroup_add, generates a proper texture group and returns a struct containg valuable information.
  • While the struct isn't strictly needed, it does keep track of the texture group in the background via a config option. Please see __COLLAGE_WEAKREF_TEXTUREGROUPS for more.
  • Also a .ToStaticBuilder(prefetch, destroyAfter) variant exists for a more asynchronous approach. (This allows you to save out data or do anything else that is needed).
  • All image structs returned from the .Add() functions now have .SetSize() and .SetScale(). These are applied automatically and change the sprite at will. Only use this if you are certain! Sprites added via the IDE will be duplicated.
  • With above, there is also .AddSpriteAsFrame() and .AddSurfaceAsFrame().
  • Added .AddSpriteSheetSingle(), for generating a image out of a sprite sheet.

Fixed:

  • A bunch of compatibility functions from the last release
  • Linux/MacOSX compatibility fix for case-sensitive file systems, where asset compiler fails to find Collage scripts!

Collage v1.0.1 Alpha

28 Dec 06:06

Choose a tag to compare

Collage v1.0.1 Alpha Pre-release
Pre-release

Added

  • collage_license.txt file

Fixed

  • Some Collage specific functions that were using the old method names for Collage images

Collage v0.5.0

01 Apr 02:30

Choose a tag to compare

New

  • Added various new methods for Collage images for getting additional metadata.
  • Added speed variables for Collage images.
  • In addition, also added in .CalcImageIndex(image_index, [image_speed], [fps]) for automatically calculating the next image index.
  • Added new GM compatibility functions.
  • You can read more from here

Fixed

  • Added a try/catch for newer versions of GameMaker that have "unused assets" feature.

Full Changelog: v0.4.2...v0.5.0

Collage v0.4.2

17 Mar 03:38

Choose a tag to compare

New

  • Added .SetXOffset(value), .SetYOffset(value) and .SetXYOffset(xValue, yValue) for Collage Images.

Collage v0.4.1

13 Mar 14:08

Choose a tag to compare

New

  • Added in .ToSprite() to Collage images.
  • This allows exporting a Collage image as a sprite with all of its frames.
texPage = new Collage();
texPage.AddSprite(spr_soldier);
sprite_index = texPage.GetImageInfo("spr_soldier").ToSprite();

Collage v0.4.0

13 Apr 15:46

Choose a tag to compare

Fixed:

  • Upstream bug (Sprite Ids are now refs)
  • Fixed an issue where sprites added via the IDE would be deleted if isCopy wasn't filled.

Added:

  • CollageRenderPipelineInstance.RemoveImageByIndex(bufferEntry, imageEntry) added as per #19 (Thanks @thennothinghappened!) Note: Additional helper functions will be included in the future.

Collage v0.3.1

17 Sep 01:51

Choose a tag to compare

Fixed

  • Fixed Collage UVs from returning incorrect values #16
  • Implemented missing .GetWidth() and .GetHeight() for texture page struct

Collage v0.3.0

07 Feb 02:02

Choose a tag to compare

I've been on and off the past couple months changing and fixing bugs that creeped up with Collage. As well as redoing the docs and providing more information. You may see the new docs here!

The docs are open sourced, and will be covering not just one but more of my libraries. Check out the repo here!

New features:

  • The remaining draw functions (minus draw_sprite_pos) has been added. As well as their compatibility counterpart. 🥳
  • Added .AddSpriteSheet() to the Collage constructor. (To be used with CollageDefineSpriteSheet)
  • HTML5 fully supported! (as of IDE v2022.11.0.54 Runtime v2022.11.0.73)
  • xOrigin and yOrigin can now be set with CollageOrigin for snapping to a specific origin. Such as the middle of the sprite, without having to know the size beforehand.
  • Added in image_get_uvs().
  • Added CollageIsGPUStateSterlized to check whether the GPU state has been sterilized by Collage or not.
  • Added in a temporary "optimization" flag for each Collage instance, which will allow more images to pack onto a texture page. (Results in smaller images being packed in any gaps that they can fit in.)
  • Added additional properties for cropping texture pages.
  • Swapped arguments around for Collage() (identifier is now first, rather than last.)
  • Added in CollageRenderPipeline for batching multiple static images together. (Via vertex buffers).
    -Added in image batch mode options (See docs for more) That covers #12 #11 #10

Changes from previous release:

  • Updated feather comments.
  • CollageCompatibilityGetImageUVs() has been changed to CollageImageGetUVsArray().
  • Some of the Collage functions (such as CollageGetImageSurface() has been corrected to now be in the appropriate format. CollageImageGetSurface(). This doesn't apply to methods.
  • Moved all of the compatibility functions to their own folder. Now labelled under GM-Collage Compatibility for easier navigation.
  • FIXED THE DOCS

Bugs fixed:

  • Fixed issue where scaling + rotation of sprites would cause some weird offsets.
  • Fixed an issue where .AddFileStrip() wasn't respecting asynchronous loading from the web. (This caused some odd behaviours when used, especially for HTML5, which is purely asynchronous.)

Collage v0.3.0-Preview2

03 Jan 04:56

Choose a tag to compare

Pre-release

Additions from previous verison:
-Added in image batch mode options (See docs for more)

Bugs fixed from previous verison:
-Optimized [optimization]

Changes from previous verison:
-Added {{name}} property to .AddSpriteSheet()

Collage v0.3.0-Preview

01 Dec 09:57

Choose a tag to compare

Pre-release

I've been on and off the past couple months changing and fixing bugs that creeped up with Collage. As well as redoing the docs and providing more information. You may see the new docs here!

The docs are open sourced, and will be covering not just one but more of my libraries. Check out the repo here!

New features:

  • The remaining draw functions (minus draw_sprite_pos) has been added. As well as their compatibility counterpart. 🥳
  • Added .AddSpriteSheet() to the Collage constructor. (To be used with CollageDefineSpriteForSheet)
  • HTML5 fully supported! (as of IDE v2022.11.0.54 Runtime v2022.11.0.73)
  • xOrigin and yOrigin can now be set with CollageOrigin for snapping to a specific origin. Such as the middle of the sprite, without having to know the size beforehand.
  • Added in image_get_uvs().
  • Added CollageIsGPUStateSterlized to check whether the GPU state has been sterilized by Collage or not.
  • Added in a temporary "optimization" flag for each Collage instance, which will allow more images to pack onto a texture page. (Results in smaller images being packed in any gaps that they can fit in.)
  • Added additional properties for cropping texture pages.
  • Swapped arguments around for Collage() (identifier is now first, rather than last.)

Changes from previous release:

  • Updated feather comments.
  • CollageCompatibilityGetImageUVs() has been changed to CollageImageGetUVsArray().
  • Some of the Collage functions (such as CollageGetImageSurface() has been corrected to now be in the appropriate format. CollageImageGetSurface(). This doesn't apply to methods.
  • Moved all of the compatibility functions to their own folder. Now labelled under GM-Collage Compatibility for easier navigation.
  • FIXED THE DOCS

Bugs fixed:

  • Fixed issue where scaling + rotation of sprites would cause some weird offsets.
  • Fixed an issue where .AddFileStrip() wasn't respecting asynchronous loading from the web. (This caused some odd behaviours when used, especially for HTML5, which is purely asynchronous.)