Skip to content

wgpupixel 1.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Sep 09:43

The existing Presenter::draw and Display::draw overloads and their exported
symbols are retained, including use through member pointers. The shared library
is now libwgpupixel.so.1.1; relink consumers when upgrading from 1.0.

  • io::load preserves 16-bit PNG/TIFF precision and HDR/negative samples in
    half/float EXR and linear float TIFF. 16-bit ICC conversion preserves colours
    outside sRGB with matrix/shaper profiles; profile tables retain their own
    precision and domain limits. Float ICC input requires XYZ matrix/shaper profiles
    with parametric curves; unsupported profiles and out-of-range samples fail with
    io_failed instead of silently clipping or quantizing. See wgpupixel_io.h for
    profile and sample limits. Float image loading uses less temporary host memory.
    io::save still writes 8-bit sRGB PNG.
  • Untagged 8-bit grayscale TIFF now uses sRGB instead of gamma 2.2.
    Associated-alpha TIFF, including 8-bit input, is converted in linear light;
    linear associated float input retains colour at zero alpha, including ICC.
    Unreadable optional TIFF EXIF blocks no longer prevent loading.
  • Commands::mask_bounds finds a selection's exact bounds or reports it empty,
    with an optional coverage threshold and region (MaskBoundsBuffer,
    MaskBoundsOptions). Only 16 bytes are read back; no workspace is needed.
  • from_srgb and to_srgb convert straight sRGB UI colours to and from linear
    premultiplied Color, using the same curve as rgba8/rgba16 transfers.
    These helpers clamp to SDR.
  • Presenter::draw and Display::draw accept independent webgpu::DirtyHints
    for the image and overlay. Local edits update only the affected viewport cache
    regions, with the same result as a full rebuild. Missing or mismatched hints
    rebuild fully.
  • Brush, eraser and smudge continuation capture and restore only accumulated
    stroke bounds. snapshot_bounds() reports those bounds after recording.
    Snapshot storage remains reserved for the full destination size.
  • Display and Presenter targets can exceed 8192 pixels where the adapter
    allows it; Context::limits().max_texture_dimension_2d reports the limit.
  • Fixed selection contraction leaving axis-aligned anti-aliased edges unchanged
    on llvmpipe with AVX-512 CPUs.