NoesisGUI
 

📝 NoesisGUI 4.0 Release Notes

Changelog_v40_0.png

What's New?

Version 4.0 is a major architectural milestone focused on the official debut of Noesis Studio and its supporting extensions. As we transition our ecosystem away from Microsoft Blend, we have deliberately minimized breaking changes in the Core API to ensure a smooth upgrade path for existing projects.

Version 4.0.1

📅 Released 21 Oct 2026 - Download

  • Enhancement Emscripten improvements
    • Upgraded SDK to 4.0.19.
    • Implemented multiple size optimizations.
    • Added the -fPIC flag (required by Godot plugins) (#5234).
    • Included separate single-threaded and multithreaded (pthread) builds.
    • Unity 6.5 is now required for Unity web builds.
  • Enhancement Added support for Unity 6.7.
  • Enhancement Improved tessellation performance by 15%.
  • Enhancement NameScopes now hold strong references to objects to eliminate potential crashes.
  • Enhancement Implemented TextBox undo/redo history (#4613, #5217).
  • Enhancement D3D12RenderDevice constructor no longer receives an ID3D12Fence; its completed value must now be passed in SetCommandList (Breaking change).
  • Enhancement WrapTexture in D3D11 and D3D12 renderers now receives the format to be used by the created view (Breaking change). This also fixes issues with TYPELESS texture formats in Unity builds.
  • Enhancement Unreal Added CVars for controlling WorldUI TAA behavior.
  • Enhancement Unreal Made UNoesisWorldUIComponent inherit from UMeshComponent so it can force Velocity updates for use in TAA.
  • Enhancement C# Added missing VirtualizingWrapPanel proxy.
  • Fixed Broken SVG rendering since 4.0 (#5182).
  • Fixed InlineUIContainer not preserving size after changing Foreground property (#5204).
  • Fixed Resolved rendering artifacts and compositing issues that occurred when applying visual effects to nested opacity groups (#2460, #2491, #3664).
  • Fixed Crash modifying ToolTip contents inside an ItemTemplate element.
  • Fixed Crash applying a DynamicResource to a target that doesn't implement IUITreeNode.
  • Fixed Crash in TSF when calling TextStore after releasing TextBox association.
  • Fixed Thread-safety issues in D3D11/12 Media Player.
  • Fixed Crash initializing D3D11/12 Media Player when AudioEnumerator can't be created.
  • Fixed FileSystemWatcher stopped working when a file was locked forever.
  • Fixed Crashes in arc tessellation (#5225).
  • Fixed Stack overflow binding TransitionContentPresenter's ContentTemplate in a DataTemplate.
  • Fixed Assert in PathStroker::GenJoinGeometry (#5209).
  • Fixed Assert detaching container in ItemContainerGenerator (#5209).
  • Fixed BooleanToVisibilityConverter fails when used ChangePropertyAction (#5260).
  • Fixed Crash accessing destroyed element when notifying of LayoutUpdated.
  • Fixed Vulkan undefined behavior caused by VR shaders being incorrectly bound in non-VR rendering scenarios, resolving glitches on Adreno 730 and Mali-G77 GPUs (#5211).
  • Fixed Compilation error with NS_TRACK_XAML_SOURCE=0 (#5181).
  • Fixed NineSliceImage rendering upside down (#5196).
  • Fixed Crash destroying ItemCollection pointing to another ItemsControl's Items.
  • Fixed Unreal Crash when adding a view to a UMG widget (#5249).
  • Fixed Unreal Memory leak when a bound UObject is destroyed before its binding.
  • Fixed Unity Warnings related to font .meta files.
  • Fixed Unity Methods and properties returning structs are doing allocations (#5165).
  • Fixed Unity Mouse input not working for cameras with a non-default viewport.
  • Fixed Unity Input events not working on displays other than Display 1 in editor mode (#4758).
  • Fixed Unity Use camera-scoped HDRP custom passes instead of global passes (#4392 #5183).
  • Fixed Unity Mangled Text Glyphs (#5230).
  • Fixed Unity Import Error Code:(4) when dropping XAMLs or Fonts.
  • Fixed Unity Assert when registering DependencyProperty of unsupported struct type (#5209).
  • Fixed Unity "PluginImporter object at version 1" package warnings in Unity 6.7 (#5195).
  • Fixed Unity Disabled Static Cleanup Analysis in Unity 6.7 (UAL0010 and UAL0013 warnings).
  • Fixed Unity Resolved an issue in Unity 6.7 where dragging and dropping XAML files onto a camera did not work correctly. Please note that drag-and-drop support directly into the Scene view has been intentionally removed.
  • Fixed Unity Potential null ref for empty paths (#5205).
  • Fixed Unity Issues with NoesisWorldUI API for programmatic construction (#3471).
  • Fixed Unity User Controls not rendering in Android (#5261).
  • Fixed C# Corrected a native binding issue that caused overridden methods in custom C# RenderDevice classes to sometimes lose or fail to retrieve their instance arguments.
  • Fixed C# VirtualizingStackPanel BringIndexIntoView not implemented (#5250).

Version 4.0.0

📅 Released 20 Aug 2026 - Download

  • Feature The Inspector has received a major overhaul:

    • Modernized UI: A refreshed visual design that closely aligns with Noesis Studio.
    • High-Performance Protocol: The communication protocol has been rewritten to significantly reduce bandwidth usage and streamline device discovery on the network. Note that this new protocol is not compatible with previous versions of Noesis.
    • Reflection Properties: In addition to DependencyProperties, reflection properties are now shown and can be edited. This includes support for viewing and editing DataContext, VisualStates, and Interactions.
    • Event Tracing: Support for tracing events has been added. You can select specific events to inspect and observe how they traverse the visual tree while being handled.
    • Data Breakpoints: Support for data breakpoints allows you to watch a specific property and get detailed information about what changed its value.
    • XAML Source Navigation: You can now navigate directly from any node in the visual tree to its corresponding XAML source file (line and column). This currently integrates with VS Code.
    Changelog_v40_3.png
  • Enhancement Upgrades to the Application Framework:
    • Apple Platform Enhancements:
      • The Metal renderer now features full support for Video rendering.
      • Custom Shaders are now fully supported within the Metal renderer pipeline.
      • AppKitDisplay now supports custom cursors.
    • Added native support for Microsoft GameInput on Windows.
    • The internal shader library has been expanded and unified across both Unity and Unreal Engine integrations.
    • LangServer is now a private package, not part of the app-framework.
  • Enhancement IntegrationAPI improvements:
    • Added dedicated callbacks for setting and getting the system clipboard.
    • Added new callbacks invoked when a View captures or releases the mouse.
  • Enhancement Added AttachDevice and DetachDevice to the View's renderer. This allows you to hot-swap the underlying RenderDevice at runtime without destroying the View.
  • Enhancement View Model bindings are now stored using a highly optimized data structure. This significantly reduces memory overhead and accelerates resolution times, particularly for DataContexts tracking a large number of properties.
  • Enhancement ScrollViewer now defaults to smooth scrolling. Three new properties have been exposed to control this behavior: IsSmoothScrollingEnabled, IsScrollBarSmooth and IsMakeVisibleSmooth.
  • Enhancement Added the Spacing property to StackPanel to define a uniform distance between stacked items, applied in the direction of the panel's orientation.
  • Enhancement Added MouseWheelTrigger and SeekStoryboardAction to the Interactivity package.
  • Enhancement The C++17 standard has been adopted across the entire Noesis codebase.
  • Enhancement Base interactivity classes (TriggerBase, Interaction, Behaviour, etc.) have been moved directly into the core library. Client code can now extend these classes natively without needing to include the full app-interactivity package.
  • Enhancement Popup and Tooltip now support advanced placement rules.
  • Enhancement Added IsScaleReference to ToolTipService to explicitly define whether an element dictates the scale reference.
  • Enhancement API Breaking Changes:
    • The DynamicTextureSource API has been redesigned to guarantee render-thread safety. A Renderer instance must now be passed at construction time, exposing virtual Init, Render, and Shutdown methods that are strictly invoked on the render thread. All native media players have been upgraded to this new architecture.
    • Deprecated Caps.centerpixeloffset in RenderDevice.
    • Microsoft Visual Studio 2015 is no longer supported.
    • DrawText within DrawingContext now explicitly requires a location coordinate as its second parameter.
    • Render overloads in IRenderer have been deprecated in favor of RenderStereo functions.
 
© 2017 Noesis Technologies