Shaders written in Go
New package ui/shader: write a fragment shader in Go's syntax, compile it once with shader.MustCompile, and draw it on every renderer (Metal, Direct3D 11, OpenGL/WebGL 2 and the CPU fallback). The compiler is forked from Ebitengine's Kage. The wind example now draws with two of these shaders.
- Compile shaders written in Go's syntax for every renderer, forked from Kage by @egoist in #371
- Draw shaders written in Go on every renderer with package ui/shader by @egoist in #372
- Draw the wind example with two shaders written in Go by @egoist in #373
- Accept valid Go uint forms in shaders by @egoist in #377
Native UI
- Live chart lines draw fast with
chart.MinMaxbucketing andPainter.StrokePolyline, which strokes opaque lines on the GPU by @Nigh in #363 - Clicks are counted by the system's double-click settings on every platform, and per element: on Linux and Windows a double click now selects a word in the code editor and rich text, and a triple click a line by @saanuregh in #347
ListState.KeepOffsetlets a keyed list keep its scroll offset as its rows re-sort, while the selection still follows its keys by @egoist in #367Element.TextAnchorCarettells which end of a text selection is its caret by @sorrycc in #352- A percentage maximum on a flex container's main axis is honored by @zzstar101 in #349
Terminal plugin
- Paste an image alone as an empty bracketed paste, as VS Code does, by @sorrycc in #344
- With CopyOnSelect, Select All copies what it selects, and the option changes live by @sorrycc in #345
File watching
- Each entry of a watch's scan is looked at relative to its directory by @egoist in #366
- Renames are paired by file identity, and FSEvents' first event is delivered at once by @egoist in #370
- A watch's snapshot takes half the memory, and the new
FileWatchOptions.HintsOnlygives cheap coarse watches by @egoist in #375
Apps and platforms
- A global shortcut registered by calls at the same time is bound once by @zzstar101 in #348
- An app's own
InfoPlist.stringsis kept when it ships languages by @ACAne0320 in #380 - On Windows, the app's own file renames and reads are retried while Windows reports the files in use
- The Launchers docs page shows
LSUIElementin mygo.json by @egoist in #368
No breaking API changes since 0.5.1 (checked with apidiff).
Full Changelog: v0.5.1...v0.5.2