Releases: JujuAdams/Scribble
9.7.3
9.7.2
- Adds safety check to prevent errors if invalid data is found in font info (which is a workaround for this GM bug)
9.7.1
- Adds
SCRIBBLE_SPRITE_ALIGN_MODEto change the in-line sprite positioning logic. Use a value of0for compatibility with older versions of Scribble. - Adds functions to adjust ascender/ascender offset
- Calling
scribble_font_bake_shader()twice will now raise an error - Fixes line vertical alignment across pages
- Adds a helpful error when using per-character delay but there is no glyph data
9.7.0 (beta)
- Adds
SCRIBBLE_SPRITE_ALIGN_MODEto change the in-line sprite positioning logic. Use a value of0for compatibility with older versions of Scribble. - Adds functions to adjust ascender/ascender offset
- Calling
scribble_font_bake_shader()twice will now raise an error - Fixes line vertical alignment across pages
9.6.6
- Adds
.get_line_data() - Improves line height detection for bundle fonts
- Adds
.y_offsetto struct returned by.get_glyph_data(). This is the distance from the top of the line to the top of the glyph - Adds interrupt parameter to
.sound_per_char() - Text, glyph data, and line data getters are now toggleable per text element at runtime
- Adds
.allow_text_getter().allow_glyph_data_getter().allow_line_data_getter()in aid of the above - Reworks three macros to instead force allowing getter methods (
SCRIBBLE_FORCE_TEXT_GETTERSCRIBBLE_FORCE_GLYPH_DATA_GETTERSCRIBBLE_FORCE_LINE_DATA_GETTER) - Adds font remapping via
scribble_font_set_remap()which is helpful for localisation and accessibility - Adds
SCRIBBLE_INITIALIZE_ON_BOOTandscribble_initialize()for when this macro is set tofalse - Adds methods to set/get animation timer per element
- Adds some dummy data structures to hopefully avoid
ds_grid_destroy(0)mistakes etc. - Fixes documentation error for
SCRIBBLE_DEFAULT_UNIQUE_ID - Fixes sprite material caching when using legacy compile options
- Fixes
.get_glyph_data()returning invalid data if a too-high glyph index is provided - Adds dynamic texture groups support
- Since 9.6.6.1: Fixes crash when using older versions of GameMaker that don't support some texture group getters
Dynamic Texture Group Support
Previous versions of Scribble had issues with fonts in dynamic texture groups appearing as invisible even after loading the texture group. This is due to an upstream bug in GameMaker where unloaded texture pages will return invalid dimensions until their texture group has been loaded (and/or fetched). This then leads to glyph UVs being invalid which causes glyphs to appear invisible. Scribble 9.6 adds some glyph UV correction when caching a text model provided that dynamic texture groups for fonts have been loaded.
Please note that Scribble cannot automatically fix text models that have been cached with invalid data because a dynamic texture group wasn't loaded at the time the text was cached. You must ensure that you're only caching text that relies on dynamic texture group fonts after that texture group was loaded.
You can force all text models to refresh themselves with scribble_refresh_everything(). After calling this function, all text models will rebuild themselves, correcting any skewiff UV coordinates if they can. You will very likely want to use this after a related dynamic texture group has been loaded to ensure all text models are up to date.
9.6.5 (beta)
- Adds
.get_line_data() - Improves line height detection for bundle fonts
- Adds
.y_offsetto struct returned by.get_glyph_data(). This is the distance from the top of the line to the top of the glyph - Adds interrupt parameter to
.sound_per_char() - Text, glyph data, and line data getters are now toggleable per text element at runtime
- Adds
.allow_text_getter().allow_glyph_data_getter().allow_line_data_getter()in aid of the above - Reworks three macros to instead force allowing getter methods (
SCRIBBLE_FORCE_TEXT_GETTERSCRIBBLE_FORCE_GLYPH_DATA_GETTERSCRIBBLE_FORCE_LINE_DATA_GETTER) - Adds font remapping via
scribble_font_set_remap()which is helpful for localisation and accessibility - Adds
SCRIBBLE_INITIALIZE_ON_BOOTandscribble_initialize()for when this macro is set tofalse - Adds methods to set/get animation timer per element
- Adds some dummy data structures to hopefully avoid
ds_grid_destroy(0)mistakes etc. - Fixes documentation error for
SCRIBBLE_DEFAULT_UNIQUE_ID - Fixes sprite material caching when using legacy compile options
- Adds dynamic texture groups support
Previous versions of Scribble had issues with fonts in dynamic texture groups appearing as invisible even after loading the texture group. This is due to an upstream bug in GameMaker where unloaded texture pages will return invalid dimensions until their texture group has been loaded (and/or fetched). This then leads to glyph UVs being invalid which causes glyphs to appear invisible. Scribble 9.6.2 adds some glyph UV correction when caching a text model provided that dynamic texture groups for fonts have been loaded.
Please note that Scribble cannot automatically fix text models that have been cached with invalid data because a dynamic texture group wasn't loaded at the time the text was cached. You must ensure that you're only caching text that relies on dynamic texture group fonts after that texture group was loaded.
You can force all text models to refresh themselves with scribble_refresh_everything(). After calling this function, all text models will rebuild themselves, correcting any skewiff UV coordinates if they can. You will very likely want to use this after a related dynamic texture group has been loaded to ensure all text models are up to date.
9.6.3 (alpha)
- Adds
.y_offsetto struct returned by.get_glyph_data(). This is the distance from the top of the line to the top of the glyph - Text, glyph data, and line data getters are now toggleable per text element at runtime
- Adds
.allow_text_getter().allow_glyph_data_getter().allow_line_data_getter()in aid of the above - Reworks three macros to instead force allowing getter methods (
SCRIBBLE_FORCE_TEXT_GETTERSCRIBBLE_FORCE_GLYPH_DATA_GETTERSCRIBBLE_FORCE_LINE_DATA_GETTER)
9.6.2 (alpha)
- Hotfix build to test dynamic texture groups support
- Also adds some dummy data structures to hopefully avoid
ds_grid_destroy(0)mistakes etc.
Previous versions of Scribble had issues with fonts in dynamic texture groups appearing as invisible even after loading the texture group. This is due to an upstream bug in GameMaker where unloaded texture pages will return invalid dimensions until their texture group has been loaded (and/or fetched). This then leads to glyph UVs being invalid which causes glyphs to appear invisible. Scribble 9.6.2 adds some glyph UV correction when caching a text model provided that dynamic texture groups for fonts have been loaded.
Please note that Scribble cannot automatically fix text models that have been cached with invalid data because a dynamic texture group wasn't loaded at the time the text was cached. You must ensure that you're only caching text that relies on dynamic texture group fonts after that texture group was loaded.
You can force all text models to refresh themselves with scribble_refresh_everything(). After calling this function, all text models will rebuild themselves, correcting any skewiff UV coordinates if they can. You will very likely want to use this after a related dynamic texture group has been loaded to ensure all text models are up to date.
9.6.1 (beta)
- Adds
.get_line_data() - Improves line height detection for bundle fonts
- Fixes documentation error for
SCRIBBLE_DEFAULT_UNIQUE_ID - Fixes sprite material caching when using legacy compile options
9.6.0 (alpha)
- Adds
.get_line_data() - Improves line height detection for bundle fonts
- Fixes documentation error for
SCRIBBLE_DEFAULT_UNIQUE_ID