2026-11-12

==== stb_image v2.32

- fix regression in req_comp==0
- fix configuration problem with mad4sizes()

==== stb_image_write v1.18

- fix crash

==== stb_textedit v1.16

- various bugfixes
- add support for UTF8 text buffer with left/right movement abstraction
- new function: stb_textedit_text() allows adding UTF8 characters

==== stb_truetype v1.28

- bugfixes

==== stb_vorbis v1.24

- various bugfixes

2026-11-11

==== stb_image_resize2.h

- moved to https://github.com/nothings/stb_image_resize

==== stb_sprintf.h

- moved to https://github.com/nothings/stb_sprintf

==== stb_image v2.31

- various bugfixes
- PIC support removed: the only reasons to use PIC were Softimage|3D/XSI, which have now been dead for 12 years.
  - if you still need it, use v2.30 located at deprecated/stb_image_pic.h
- PNM now has proper support for maxvals other than 255 or 65535
- PNM now supports ASCII (P2, P3) variants of PGM/PPM
- HDR loader appreciably faster (no more ldexp per pixel)
- ARM64EC targets now compile correectly and use NEON paths
- when using installable IO callbacks, all image readers now seek backwards at the end to "unget" unconsumed bytes left in IO buffer

==== stb_vorbis v1.23

- various bugfixes
- new stb_vorbis_get_playback_sample_offset reports current playback position in samples from beginning of the file
- configurable CODEBOOK_LIMIT to reject files with huge codebooks as malformed (default of 262144 accepts all files ever produced by libvorbis)
- new compile-time option STB_VORBIS_NO_COMMENTS that skips over (potentially huge) comment fields in Vorbis files instead of keeping them in memory
- new 64-bit versions of get_sample_offset, get_playback_offset, seek_frame, seek, stream_length_in_samples for Vorbis files containing more than INT_MAX samples

==== stb_truetype v1.27

- many bugfixes
- add support for WingDing & other symbol fonts
- new function: stbtt_GetFontNameDefault()
- new function: stbtt_ScaleForPixelWidth()
- new function: stbtt_GetFontUnderlineMetrics()
- vertical layout:
  - new function: stbtt_GetFontHMetrics()
  - new function: stbtt_GetGlyphVMetrics()
  - new function: stbtt_GetCodepointVMetrics()

==== stb_ds.h v0.98

- several bugfixes
- new function: arrclear()
- thread-safety issues:
  - change hmget_ts() on NULL map so it crashes
    - it used to allocate so it could return the default value
    - in typical use that would either leak the table or update it thread-unsafely
    - there's no legitimate way to return a default value safely, so we crash instead
    - hmgeti_ts() remains viable for NULL
  - new functions (optional): hminit() and shinit()
    - these allocate empty tables with proper default values instead of relying on NULL
    - only need to call these if you're using the _ts() functions on empty maps
  - new functions: shget_ts(), shgeti_ts(), shgetp_ts()
- the hash function for strings (shput etc. functions) has changed due to a bug 
  - the final mix was incorrectly implemented and as a result was mixing poorly
  - this change should in theory have no visible effect to the user
    - in stb_ds, iteration over the hash table does NOT depend on the hash value

==== stb_image_write.h v1.17

- many bugfixes
- add support for image stride:
  - new function stbi_write_bmp_strided()
  - new function stbi_write_tga_strided()
  - new function stbi_write_jpg_strided()
  - new function stbi_write_hdr_strided()
  - new functions stbi_write_bmp_strided_to_func(), stbi_write_tga_strided_to_func(),
                  stbi_write_hdr_strided_to_func(), stbi_write_jpg_strided_to_func()
  - (PNG already supported stride)
- HDR writer now automatically clamps infinite or negative values during writing

==== stb_perlin.h  v0.6

- new function computes analytic derivatives: stb_perlin_noise3_derivatives()

==== stb_rect_pack.h  v1.02

- should now produce identical results on all platforms (previously dependent on qsort() tiebreak)

==== stb_c_lexer  v1.13

- many bugfixes
- add support for octal and hexadecimal characters in character and string literals

==== stb_leakcheck.h  v0.7

- handle calloc()

==== stb_tilemap_editor.h  v0.43

- SDL 3 event handling

==== stb_divide.h  v1.0

- radical simplification using div()/div_t

==== stb_include.h v0.3

- bugfixes

==== stb_herringbone_wang_tile.h v0.7

- bugfixes

==== stb_textedit.h v1.15

- bugfixes
- new function: stb_textedit_char() for separate handling e.g. WM_KEYDOWN vs WM_CHAR

==== stb_connected_components.h v0.97

- bugfix

==== stb_hexwave.h v0.6

- bugfix

==== stb_voxel_render.h v0.90

- bugfix

==== stb_easy_font.h v1.2

- fix warning

==== stb_dxt.h v1.13

- fix warning

