Changelog

All notable changes to micro will be documented here. The format follows Keep a Changelog.


[0.5.0] — 2026-04-06

Added

  • text class — multiline text with pre-calculated layout for efficient rendering:
  • Parses strings into lines (split on \n) with resolved glyphs
  • lines() — iterate over text lines
  • width() and height() — get text block dimensions
  • line::has_newline() — check if line was terminated by \n
  • Horizontal text alignmenttext_options::align() with align::left, align::center, and align::right
  • renderer::draw(const text&, pointf, text_options) — draw text objects with alignment
  • renderer::draw(const font&, string_view, pointf, text_options) — draw text strings (moved from font)
  • font::find_glyph(char) — look up glyph info for a specific character
  • font::atlas() — read-only access to the texture atlas for custom rendering

Changed

  • Font drawing moved from font::draw() to renderer::draw(const font&, ...)

Deprecated

  • font::draw() — use renderer::draw(const font&, ...) instead

[0.4.0] — 2026-04-03

Added

  • text_options class — configure text rendering with tint and scale using a fluent API
  • font::height() — returns the maximum glyph height for the font

Changed

  • draw_options now uses fluent API — instead of public fields, use method chaining: cpp // Old: draw_options{.scale = 2.f, .flip = flip::horizontal} // New: draw_options{}.scale(2.f).flip(flip::horizontal)
  • font::draw() and font::measure() now accept text_options parameter instead of separate arguments

[0.3.0] — 2026-03-29

Added

  • window::fps() — returns current frames per second based on a sliding window average

[0.2.0] — 2026-03-23

Added

  • window::dtime() — returns delta time in seconds since the last frame

Changed

  • Simplified main loop API — users now write a manual while (win.running()) loop instead of using callbacks
  • Delta time is now tracked internally by the window and accessed via dtime()

Deprecated

  • window::run() — use manual loop with running() and dtime() instead: cpp while (win.running()) { pos += vel * win.dtime(); rend.present(); }

[0.1.0] — 2026-03-22

Initial release.