packages feed

kb-text-shape-0.2.0.0: CHANGELOG.md

# Changelog for `kb-text-shape`

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to the
[Haskell Package Versioning Policy](https://pvp.haskell.org/).

## 0.2.0.0 - 2026-07-28

Updated `kb_text_shape` to 2.24.

Breaking, following upstream:
  - `kbts_ShapeDirect` now takes a `ShapeScratchpad` instead of a shape config and an allocator.
  - `kbts_ShapeDirectFixedMemory` was removed upstream; use `kbts_PlaceShapeScratchpadFixedMemory`.
  - Glyph config functions (`kbts_SizeOfGlyphConfig`, `kbts_PlaceGlyphConfig`, `kbts_CreateGlyphConfig`) now take a `ShapeConfig`.
  - `Structs.Codepoint` carries `featureOverrides`/`featureOverrideCount` instead of `config`.
  - `Structs.GlyphParent` is now two codepoints instead of a decomposition and a codepoint.
  - `Font.Info` gained metrics fields (units per em, bounding box, ascent/descent/line gap, capital height), now backed by `kbts_GetFontInfo2`.

Removed:
- `unitsPerEm` and `capHeight`, now that the upstream serves them from font `Info`.

Added:
- Shape scratchpad management: `kbts_SizeOfShapeScratchpad`, `kbts_PlaceShapeScratchpad`, `kbts_PlaceShapeScratchpadFixedMemory`, `kbts_CreateShapeScratchpad`, `kbts_DestroyShapeScratchpad`.
- `ShapeContextFlags` and the flag-taking context constructors: `kbts_PlaceShapeContext2`, `kbts_PlaceShapeContextFixedMemory2`, `kbts_CreateShapeContext2`.
- `Structs.FontInfo2` and `kbts_GetFontInfo2`.
- `Handles.sizeOfBreakState` for allocating segmentation states.
- `createContextWith` to set the context flags.
- `iterateGlyphs` is now exported for draining direct API results.

Known upstream issues (as of 2.24), see the haddocks:
- `kbts_BreakEntireString*` leave unwritten holes in the break array and
  over-report the break count when same-position breaks merge.
- `kbts_ShapePopFeature` always returns 0 instead of reporting the removal.
- Fonts pushed mid-input take effect a segment earlier than the codepoints
  fed under them (affects `withFont_` section edges; present in 2.06 too).

## 0.1.0.1 - 2026-03-15

- Added `withFont_`. This allows reusing the font stacks for text styling too.

## 0.1.0.0 - 2025-12-30

Initial release.