Releases: tabularelf/Collage
Collage v1.0.0-Alpha
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_md5and 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_HASHESfor more. - With above, adds
.SetHashingand.GetHasing. .ToStatic(prefetch, destroyAfter)-> Usingtexturegroup_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_TEXTUREGROUPSfor 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
Added
- collage_license.txt file
Fixed
- Some Collage specific functions that were using the old method names for Collage images
Collage v0.5.0
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
New
- Added
.SetXOffset(value),.SetYOffset(value)and.SetXYOffset(xValue, yValue)for Collage Images.
Collage v0.4.1
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
Fixed:
- Upstream bug (Sprite Ids are now refs)
- Fixed an issue where sprites added via the IDE would be deleted if
isCopywasn'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
Fixed
- Fixed Collage UVs from returning incorrect values #16
- Implemented missing
.GetWidth()and.GetHeight()for texture page struct
Collage v0.3.0
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 withCollageDefineSpriteSheet) - HTML5 fully supported! (as of IDE v2022.11.0.54 Runtime v2022.11.0.73)
- xOrigin and yOrigin can now be set with
CollageOriginfor 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
CollageIsGPUStateSterlizedto 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
CollageRenderPipelinefor 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 toCollageImageGetUVsArray().- 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 Compatibilityfor 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
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
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 withCollageDefineSpriteForSheet) - HTML5 fully supported! (as of IDE v2022.11.0.54 Runtime v2022.11.0.73)
- xOrigin and yOrigin can now be set with
CollageOriginfor 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
CollageIsGPUStateSterlizedto 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 toCollageImageGetUVsArray().- 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 Compatibilityfor 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.)