Skip to content

Releases: wieslawsoltes/FerroUI

FerroUI 0.4.0-preview.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 20:17

What's Changed

  • Vello performance, round 1: rectangle fast paths, hybrid glyph atlas, bounded CPU scenes by @wieslawsoltes in #263
  • The workspace at 0.4.0-preview.1 by @wieslawsoltes in #262
  • Vello performance, round 2: software framebuffers, the CPU thread pool, box shadow pictures by @wieslawsoltes in #264
  • Vello performance, round 3: GPU-mode filters on the device, kept targets rendered where cleared by @wieslawsoltes in #265
  • Vello performance, round 4: the windows of Linux and Windows by @wieslawsoltes in #266
  • Vello performance, round 5: the hybrid mode on the OpenGL context of the platform by @wieslawsoltes in #267
  • Vello performance, final round and record: depth buffer, Metal event sync, GPU-mode fragments, docs and tools by @wieslawsoltes in #268
  • Declarative Rust API, phase 0 (#237): builders, rsx!, #[component], signals; 7GUIs in builders and macro versions by @wieslawsoltes in #270
  • Release 0.4.0-preview.1 by @wieslawsoltes in #271

Full Changelog: v0.3.0...v0.4.0-preview.1

FerroUI 0.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 21:53
0116724

What's Changed

  • The workspace at 0.3.0-preview.1 after the release of 0.2.0 by @wieslawsoltes in #245
  • Plan: System.Reactive, DynamicData and ReactiveUI as reusable crates by @wieslawsoltes in #246
  • ferroui-system: the shared .NET API of the base library in a reusable crate (phase 1a) by @wieslawsoltes in #247
  • ferroui-reactive: the core of System.Reactive and Microsoft.Reactive.Testing (phase 2) by @wieslawsoltes in #248
  • ferroui-reactive: the operators of System.Reactive (phase 3) by @wieslawsoltes in #249
  • ferroui-reactive: tasks and the asynchronous forms of System.Reactive (phase 4) by @wieslawsoltes in #250
  • ferroui-splat: a port of Splat (phase 6) by @wieslawsoltes in #252
  • ferroui-dynamic-data: a port of DynamicData (phase 5) by @wieslawsoltes in #253
  • ferroui-reactiveui: a port of ReactiveUI with ReactiveUI.Binding and ReactiveUI.Testing (phase 7) by @wieslawsoltes in #255
  • ferroui-reactiveui-controls: the integration of ReactiveUI with FerroUI (phase 8) by @wieslawsoltes in #256
  • The ReactiveUI samples (crate browser and the integration's example with a DynamicData page), the MVVM guide, and the reactive features of the facade by @wieslawsoltes in #257
  • Release 0.3.0-preview.1 by @wieslawsoltes in #258
  • The workspace at 0.3.0-preview.2 by @wieslawsoltes in #259
  • Release 0.3.0 by @wieslawsoltes in #260
  • README: community chat badge by @wieslawsoltes in #261

Full Changelog: v0.2.0...v0.3.0

FerroUI 0.3.0-preview.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 14:35

What's Changed

  • The workspace at 0.3.0-preview.1 after the release of 0.2.0 by @wieslawsoltes in #245
  • Plan: System.Reactive, DynamicData and ReactiveUI as reusable crates by @wieslawsoltes in #246
  • ferroui-system: the shared .NET API of the base library in a reusable crate (phase 1a) by @wieslawsoltes in #247
  • ferroui-reactive: the core of System.Reactive and Microsoft.Reactive.Testing (phase 2) by @wieslawsoltes in #248
  • ferroui-reactive: the operators of System.Reactive (phase 3) by @wieslawsoltes in #249
  • ferroui-reactive: tasks and the asynchronous forms of System.Reactive (phase 4) by @wieslawsoltes in #250
  • ferroui-splat: a port of Splat (phase 6) by @wieslawsoltes in #252
  • ferroui-dynamic-data: a port of DynamicData (phase 5) by @wieslawsoltes in #253
  • ferroui-reactiveui: a port of ReactiveUI with ReactiveUI.Binding and ReactiveUI.Testing (phase 7) by @wieslawsoltes in #255
  • ferroui-reactiveui-controls: the integration of ReactiveUI with FerroUI (phase 8) by @wieslawsoltes in #256
  • The ReactiveUI samples (crate browser and the integration's example with a DynamicData page), the MVVM guide, and the reactive features of the facade by @wieslawsoltes in #257
  • Release 0.3.0-preview.1 by @wieslawsoltes in #258

Full Changelog: v0.2.0...v0.3.0-preview.1

FerroUI 0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 13:46

What's Changed

Full Changelog: v0.1.0...v0.2.0

FerroUI 0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 17:52

What's Changed

  • After 0.1.0-preview.4: changelog dated, README at the published version, workspace at 0.1.0-preview.5 by @wieslawsoltes in #223
  • CI reliability: the namespace race of two base tests, a frame of the GPU mode that was not delivered, the catalog sync check's arguments by @wieslawsoltes in #224
  • Text: the WinUI theme places the layout rounding above its text (TextBlock.LayoutRoundingPlacement), windows take changed text settings, calibration aids by @wieslawsoltes in #225
  • Upstream sync to 66b7273b9a: the 49 upstream commits since 17350180 by @wieslawsoltes in #226
  • WinUI theme: equal-width tabs (TabViewEqualWidthPanel) and the last review against native WinUI 3 by @wieslawsoltes in #227
  • Pages: size budget 16 MB for the catalog with the WinUI 3 theme (the site was not deployed since the theme) by @wieslawsoltes in #228
  • Phone browser: touch flicks coast (scroll inertia), and focusing a text box no longer zooms the page by @wieslawsoltes in #229
  • Release 0.1.0 by @wieslawsoltes in #230

Full Changelog: v0.1.0-preview.4...v0.1.0

FerroUI 0.1.0-preview.4

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 00:41

What's Changed

  • Integration tests: the owned window over its topmost owner passes in the Windows virtual machine at 8129148 (the window tests: 90 passed, 0 failed, 19 ignored) by @wieslawsoltes in #216
  • After 0.1.0-preview.3: changelog dated, README at the published version, workspace at 0.1.0-preview.4 by @wieslawsoltes in #217
  • WinUI 3 theme: the crate ferroui-themes-winui ported from microsoft-ui-xaml, the ControlCatalog option and the validation gallery by @wieslawsoltes in #218
  • ControlCatalog: the WinUI 3 theme as the default theme by @wieslawsoltes in #220
  • WinUI theme: third calibration against native WinUI 3 (popup shadows drawn, picker validation, calendar size, InfoBarPanel, unscaled icons in WinUI's icon templates) by @wieslawsoltes in #219
  • Text rendering: greyscale by default, ClearType only where the platform renders it, the contrast and gamma of the system (sharper text, as native) by @wieslawsoltes in #221
  • Release 0.1.0-preview.4: the changelog section by @wieslawsoltes in #222

Full Changelog: v0.1.0-preview.3...v0.1.0-preview.4

FerroUI 0.1.0-preview.3

Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Oct 13:04

What's Changed

  • After 0.1.0-preview.2: changelog dated, README on the published version, workspace at preview.3, the hardware checklist by @wieslawsoltes in #204
  • Samples: SafeAreaDemo (desktop, Android, iOS), XEmbedSample, PlatformSanityChecks, SingleProjectSandbox; leftover merge markers removed by @wieslawsoltes in #206
  • Docs: the device runs of the remaining samples by @wieslawsoltes in #208
  • Samples: GpuInterop (drawing with Vulkan, Metal, OpenGL and Direct3D 11 into composition surfaces) by @wieslawsoltes in #207
  • Tests: upstream's integration tests of the IntegrationTestApp sample on the port's own automation layer by @wieslawsoltes in #210
  • Tests: every remaining upstream test outside the integration project (benchmarks, XAML parser, designer support, base) by @wieslawsoltes in #211
  • Framework: a control behind a subclass or interface handle is shown as a control; the GPU interop of a compositor is asked for asynchronously, as upstream by @wieslawsoltes in #212
  • WinUI: the process ends without destroying the UI thread's values (the exit hang on the hosted runner) by @wieslawsoltes in #209
  • Integration tests: from 74 to 183 of 185 passing on Windows and 130 on macOS; two framework defects fixed by @wieslawsoltes in #213
  • Docs: the macOS owned-dialog order test fails for upstream's app as well (a race on macOS 26) by @wieslawsoltes in #214
  • Changelog: 0.1.0-preview.3 by @wieslawsoltes in #215

Full Changelog: v0.1.0-preview.2...v0.1.0-preview.3

FerroUI 0.1.0-preview.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Oct 23:45

What's Changed

  • Second preview platforms: Windows composition and input, Wayland, Linux framebuffer, Vulkan; after 0.1.0-preview.1 by @wieslawsoltes in #186
  • Second batch: popups, rendering fixes, Wayland stage 3, DRM, VNC, Apple OpenGL, Vulkan on Android and Windows, facade crate, WinUI, Android on stable Rust by @wieslawsoltes in #197
  • Third batch: the TextBox input method contract, one native library loader, and the tracking closed (every in-scope member ported or waived) by @wieslawsoltes in #198
  • README as the front page of a released preview; the documents made consistent; the changelog entry of 0.1.0-preview.2 by @wieslawsoltes in #199
  • X11: EGL through the default EGL interface, as upstream; the catalog's rendering mode option on Linux by @wieslawsoltes in #201
  • WinUI: the embed sample, the default control resources, a required CI step; a scheduled build of Skia on Vulkan for Windows by @wieslawsoltes in #200
  • WinUI: the VM run of both samples recorded by @wieslawsoltes in #203
  • docs.rs: the documentation of ferroui-ios builds on the Linux hosts of docs.rs by @wieslawsoltes in #202

Full Changelog: v0.1.0-preview.1...v0.1.0-preview.2

FerroUI 0.1.0-preview.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Oct 12:13

What's Changed

  • Browser: the framework crates at opt-level s, for the speed of scrolling by @wieslawsoltes in #47
  • Docs: run-time performance findings and nine improvement designs by @wieslawsoltes in #48
  • Docs: the tasks of the working period of 2026-10-08 by @wieslawsoltes in #49
  • macOS: the native storage provider, file and URL activation, files on the clipboard by @wieslawsoltes in #50
  • macOS: the native control host by @wieslawsoltes in #54
  • Docs: work moves to the local session; the macOS storage provider and native control host merged by @wieslawsoltes in #56
  • XAML compiler E5, step 2: includes across crates by @wieslawsoltes in #53
  • ControlCatalog: NavigationPage scroll-aware and transitions pages, the navigation and connected animation demos by @wieslawsoltes in #57
  • Docs: the core port first, its queue, and how sub-agents and builds are scheduled by @wieslawsoltes in #62
  • ControlCatalog: NavigationPage sample pages (curved header, interactive header, MVVM, pass data) by @wieslawsoltes in #58
  • macOS: restore the platform guard on five modules of the native backend by @wieslawsoltes in #61
  • CI: a shorter macOS job for the time being by @wieslawsoltes in #63
  • Core port: Color, focus and glyph typeface suites by @wieslawsoltes in #51
  • ControlCatalog: the demo application pages of NavigationPage and CarouselPage by @wieslawsoltes in #60
  • Skia: the remaining upstream test suites and the typeface hook by @wieslawsoltes in #52
  • Docs: the owner's decisions on converter culture, direct properties and the build location by @wieslawsoltes in #64
  • ControlCatalog: the dialogs, drag and drop and clipboard pages by @wieslawsoltes in #59
  • Metal: the external objects contracts by @wieslawsoltes in #65
  • Core port: the remaining members of the base, controls, markup and OpenGL crates, and the headless platform by @wieslawsoltes in #66
  • Docs: the render thread, design and stages by @wieslawsoltes in #69
  • Property system: untyped sets convert a value implicitly, as upstream by @wieslawsoltes in #67
  • Menu access keys keep the base handlers; the missing diagnostics instrumentation recorded by @wieslawsoltes in #68
  • Controls: the colour picker library by @wieslawsoltes in #55
  • Docs: the browser feasibility checks of the render thread, measured by @wieslawsoltes in #70
  • Bindings: the converter culture, as upstream's contract by @wieslawsoltes in #71
  • Render thread R1.3: thread-safe bitmap implementations by @wieslawsoltes in #74
  • Render thread R1.4b2: the shared form of immutable brushes and pens by @wieslawsoltes in #77
  • Render thread R1.4c: resource values of composition objects in wire form by @wieslawsoltes in #78
  • Render thread R1.4d, R1.5: animation instance factories; batch values are Send by @wieslawsoltes in #79
  • Render thread R3: the server compositor on the thread that ticks the render loop by @wieslawsoltes in #81
  • Render thread R5.1, R5.2: the compositor lock; a frame takes its services from the compositor by @wieslawsoltes in #83
  • Render thread R5.4: the native library, the Metal device lock, and a window in the render-thread mode behind a switch by @wieslawsoltes in #85
  • Render thread R5.5, R5.6: the audit of the Metal objects, two faults fixed, the interop objects under the lock by @wieslawsoltes in #86
  • ControlCatalog: the navigation and gesture registries, the main window document, counts by @wieslawsoltes in #87
  • Browser B1: an opt-in threaded build and cross-origin isolation of the site by @wieslawsoltes in #88
  • The render thread is the default where the render loop runs in the background by @wieslawsoltes in #89
  • Render thread R5.7: the image of a shared GPU context is shared between the threads by @wieslawsoltes in #90
  • Continuation: the state after the render thread became the default by @wieslawsoltes in #93
  • Frame benchmark: UI-thread time and frame completion in both modes of the compositor by @wieslawsoltes in #91
  • ControlCatalog: the OpenGL page, its scene and the numerics it needs by @wieslawsoltes in #92
  • Render thread: a test of unpaced changes of the UI thread by @wieslawsoltes in #94
  • Browser B2.4: the base library keeps a confined compositor on its render thread by @wieslawsoltes in #95
  • Browser B2.1: a canvas transferred to a thread of the module and cleared there with WebGL by @wieslawsoltes in #97
  • Markup: eleven catalog gaps closed, ten more documents load by @wieslawsoltes in #96
  • Browser B2.2: memory views made at each use, and one service worker by @wieslawsoltes in #100
  • Markup: gaps C313, C209 and C310 closed; ComboBoxPage and ContextFlyoutPage load by @wieslawsoltes in #99
  • Browser B2.3: a frame loop on the worker, software frames, resize, the wake-up and the wait by @wieslawsoltes in #101
  • Browser B2.5: the backend on thread-safe surface objects and a per-thread table of targets, still on one thread by @wieslawsoltes in #102
  • ControlCatalog: AutoCompleteBox, NumericUpDown and the five performance monitor pages by @wieslawsoltes in #103
  • XAML compiler E5: build integration for documents that name types of other crates by @wieslawsoltes in #104
  • Catalog follow-ups: 218 of 219 documents, numeric conversions, validation errors shown, pages freed by @wieslawsoltes in #105
  • Browser B2.6: the compositor on a render worker; the UI stays on the main thread by @wieslawsoltes in #106
  • Controls: the selected tab is freed when it is removed; boolean and character conversions by @wieslawsoltes in #107
  • Performance design 09: a native recycling benchmark, allocation counting and counters behind a feature by @wieslawsoltes in #108
  • XAML compiler: the source scanner and the build-time type model, first stage by @wieslawsoltes in #110
  • Render thread R5.8: features and the platform graphics are shared between the threads by their types by @wieslawsoltes in #109
  • Performance designs 04 and 03: four changes of the port's machinery, behaviour unchanged by @wieslawsoltes in #111
  • XAML compiler: dependency models and a build-time type system over the scanned model by @wieslawsoltes in #112
  • Tracking pages regenerated, mapping data reviewed, hand-over notes brought up to date by @wieslawsoltes in #114
  • Browser B2.7: the ControlCatalog on the render worker; view disposal; a frame's panic reaches the page by @wieslawsoltes in #113
  • Performance designs 05 and 06: two changes for bindings, nothing to change for text layout by @wieslawsoltes in #115
  • XAML compiler: the build-time type system agrees with the run-time one; the drift test guards it by @wieslawsoltes in #117
  • Tracking pages report real gaps only; five classes registered by @wieslawsoltes in #120
  • Performance designs 02 and 01: a virtual call skips the class levels that do not override it by @wieslawsoltes in #118
  • XAML compiler: call forms in the model, and the emitter behind a type-system seam by @wieslawsoltes in #121
  • Skia and native backends: the external objects features, and the helpers the tracking pages listed by @wieslawsoltes in #119
  • XAML compiler: tran...
Read more