Skip to content

Releases: Grisgram/gml-outline-shader-drawer

Release 3.3 Update to GMS 2402

11 Mar 16:40
Compare
Choose a tag to compare
  • Updated the project to GMS 2402
  • New Logo and favicon assets added

Have Fun! Make Games!
Gris

Release 3.2 - Prebaking fixes

12 Jul 08:19
Compare
Choose a tag to compare

This release should solve several rendering issues with prebaked sprites where the origin is not centered.
The fix should apply to all runtimes, including HTML5.

Release 3.1 - prebake caching

31 May 13:43
Compare
Choose a tag to compare

Caching of prebaked surfaces

When prebaking the same sprite (i.e. the same sprite_index) multiple times, the OutlineObjectBaked now recognizes this and reuses the surface, so prebaking happens only once per sprite prebaked.

But each prebaked sprite is its own instance and can have its own image_speed, animation_speed, etc. They are all independent but are based on the same surface behind the scenes.

As always,
have fun!

Yours, Gris

Release 3.0.2 - Hotfix#2

19 May 14:54
Compare
Choose a tag to compare

Prebaked Sprites now rotate & scale correctly in HTML

Another bug caught my attention when I tested a prebaked sprite that was scaled AND rotated at the same time. The effect only hit HTML (again!), but it is fixed now.

The demo project now contains a simple animated potion flask to prove, that multi-frame sprites can be pre-baked + scaled + rotated at the same time correctly while keeping their animation speed.

Release 3.0.1 - HTML position fix

19 May 07:59
Compare
Choose a tag to compare

Small hotfix for HTML

Positions of prebaked objects were incorrect in html-runtime if the sprite_origin is somewhere else than "middle-center"

Release 3.0 - Pulse animations!

18 May 09:39
Compare
Choose a tag to compare

The shader is now animated!

Hey all!
I am very proud to present you Release 3.0 of the outline shader which comes with an amazing animation feature!

Aside of the well known "alpha fading" feature...

No alpha fading Active alpha fading
image image

...the shader is now able to animate your outlines!

Pulse with strength Pulse with color
pulse-shader-strength pulse-shader-color

Of course, those effects can be combined and you may create a strength + color pulse!


Read all about it in the wiki!


Release 2.1

16 May 16:11
Compare
Choose a tag to compare

Rotation, Blending and Alpha for prebaking

Hey there!

The new release now is capable of supporting image_blend, image_alpha, image_angle and image scaling when prebaking your sprites!
It is fully transparent for you, there's nothing you need to change or consider. When you use OutlineObjectBaked as your parent, all those internal variables will be taken into account when baking.

In addition, this version contains an update to @tabularelf Canvas library 2.0.1 which contained a tiny glitch in garbage collecting.

Enjoy!

Yours, Gris

Release 2.0

03 Apr 15:37
Compare
Choose a tag to compare

Pre-Baking of outlined Sprites

Release 2.0 brings in a completely new and amazing feature, together with a new OutlineObjectBaked.

What is pre-baking?

The assigned sprite will be copied to a surface (with all its frames) and the outline shader will run on that surface once. It takes all the parameters into account (texture page borders, outline strength, etc) and renders the outline on all frames.

With the sprites I used for testing this pre-baking took between 0 and 5 milliseconds, so if you pre-bake lots of sprites, you should do it at level initialization.

This version uses the Canvas 2.0 Library (The``dev` branch) by @tabularelf to create the surface.

But if it takes 5ms, what is the benefit?

The benefit is runtime performance! Lots of!
While the shader, when it runs "live" costs you some draw batches and texture swaps (roughly 4 or 5 swaps/batches due to shader activation, copying the frame to a surface, rendering it, copying it back to app surface...), the prebaked sprite only costs ONE swap/batch!
This is a 80% performance win compares to "live shading"!

Look at this demonstration video - the numbers in braces on top tell you the swaps/batches.
The left sprite is shaded live and you see the numbers go up from (8)(7) to (13)(11), while the right sprite is pre-baked and you see them increase only by 1, to (9)(8).

outline-prebaking.mp4

Ok looks great, how do I use it?

Simple!
Just use the OutlineObjectBaked instead of OutlineObject. They both behave identical, while the Baked version uses pre-baking.

That's it!

Have fun,

Yours, Gris

Release 1.4.1

11 Mar 07:51
Compare
Choose a tag to compare

Project converted to GMS 2023.2

  • Some changes in the project files with the new GMS Version
  • Updated the copyright notice in the package to reflect our new studio name "coldrock.games"

Release 1.4

06 Sep 16:16
Compare
Choose a tag to compare

This version includes a bug fix on outline drawing as well as some streamlining code to work better without gml-raptor also in the project (and of course, also with gml-raptor in the same project!).

All my libraries now have a dedicated *_VERSION_ script included and they print their version to the console when started, so you can always see, which version is active in your project.

As always, have fun!
Cheers, Gris