Skip to content

v0.13.1

Choose a tag to compare

@rawframe-release rawframe-release released this 03 Nov 01:25
b615f1a

0.13.1 (2026-11-03)

Changed

  • Formats. The snapshot keeps format 6, the journal tape format 7
    and the replay container format 4. As in every release, a snapshot,
    tape or container written by another release is refused with
    m3_errorVersion.

Fixed

  • Restore refuses a touching contact pair on a dead shape. A
    shape's destroy clears the contacts of its pairs, but their keys stay
    until the next step, so a snapshot taken in between holds pairs that
    name a dead shape. Restore checked only that a touching pair was not
    two sensors, so a snapshot could also hold a touching pair on a dead
    shape. After such a restore, m3Body_GetContactData and
    m3Shape_GetContactData read 24 bytes before the world's transforms
    array, and m3World_Draw and m3Shape_SetFilter read the same
    missing body. Restore now refuses such bytes with m3_errorFormat
    and leaves the world as it was. Snapshots the library writes still
    restore. (#350)
  • The contact draw skips a pair that does not touch.
    m3World_Draw with drawContacts read the body of each pair's first
    shape before checking whether the pair touched. Drawing between a
    shape's destroy and the next step therefore read in front of the
    transforms array for each pair whose first shape was the dead one.
    Nothing was drawn from those bytes. The draw now skips a pair with no contact points first
    and draws the same primitives as before.
    (#350)