NoesisGUI

NoesisGUI 1.2 Changelog

Version 1.2.6f5

  • Enhancement UIElement GetMeasureConstraint/GetArrangeConstraint removed from documentation.
  • Enhancement C++ DependencyProperty ValidateValueCallback return type is now bool to match WPF.
  • Enhancement Minimal OS X version is 10.6 again (was 10.8 in previous builds).
  • Fixed Binding was not returning FallbackValue or default value if target property validation failed.
  • Fixed Crash if element was captured during mouse over management.
  • Fixed StaticResource failing when referencing a MergedDictionary in a UserControl.
  • Fixed BuildTool output problems when using pipes in Windows 10.
  • Fixed Rare crash in DirectX11 when updating texture surfaces.

Version 1.2.6f4

  • Unity Internal GetMeasureConstraint and GetArrangeConstraint removed from UIElement.
  • Enhancement PredictFocus and MoveFocus added to UIElement.
  • Enhancement C# IsInverted flag exposed when creating TextureSource.
  • Fixed BuildTool output problems when using pipes in Windows 10.
  • Fixed Rare crash in DirectX11 when updating texture surfaces.
  • Fixed Added validation of FontSize values.
  • Fixed Crash when touch scrolling ListBox and ScrollUnit="Pixel".
  • Fixed Crash when using ListView without View.
  • Fixed C# Strange crash in KeyDown event.
  • Fixed C# Incorrectly exporting mangled C++ symbols.
  • Fixed Unity Android crashes due to improperly handling GL_OES_vertex_array_object.
  • Fixed Unity No longer trying to instantiate abstract classes in windows phone.

Version 1.2.6f3

  • Enhancement C# Added renderer configuration functions to C# SDK.
  • Enhancement C# Missing ScrollViewer properties added.
  • Enhancement Binding.DoNothing was missing.
  • Fixed Strange problem causing UI not rendering in iOS. More platforms could be affected.
  • Fixed ScrollViewer was not binding to all the scrolling properties of templated parent.
  • Fixed Caret not showing with ScrollViewer of TextBox template having null width.
  • Fixed Issues with the position of TextBox cursor.
  • Fixed VirtualizingStackPanel incorrectly initializing estimated size of virtualized items.
  • Fixed VirtualizingStackPanel.BringIndexIntoView not working correctly with certain item sizes.
  • Fixed Support in ItemsControl for null items.
  • Fixed Binding to struct sub-property not working.
  • Fixed Clicking on a ContextMenu triggered from a button will also click on the button

Version 1.2.6f2

  • Feature UI virtualization implemented and enabled by default for ListView and ListBox controls.
  • Feature ItemContainerGenerator added and used by ItemsControl to generate item containers.
  • Feature Support for OTF (Open Type) fonts.
  • Feature New platform: Android x86.
  • Unity Feature New option in NoesisGUI component to enable touch emulation using mouse.
  • Feature C++ Support for C++11 lambdas in events.
  • Enhancement Huge performance improvements on element initialization, element destruction and layout process.
  • Enhancement C# Removed unnecessary allocations in managed layer.
  • Enhancement Selector properties now stay in sync when being modified.
  • Enhancement ScrollIntoView implemented in ListBox.
  • Enhancement IsDeferredScrollingEnabled implemented in ScrollViewer.
  • Enhancement Added Scroll commands to ScrollViewer.
  • Enhancement Added support for IScrollInfo and CanContentScroll in ScrollViewer.
  • Enhancement C# IScrollInfo interface exposed to C#.
  • Enhancement OnRender raised now inside Arrange to match WPF behavior.
  • Enhancement Support for C# properties of type System.Type.
  • Enhancement Improved stability when importing XAMLs in OSX.
  • Enhancement C++ Removed Destroyed delegate from INotifyPropertyChanged.
  • Enhancement Collections matching WPF behavior:
    • Item comparison uses now Equals method, so boxed values can be correctly found.
    • Collections can add the same item multiple times now.
    • Removing an item that is not found in the collection doesn't throw error anymore.
  • Unity Enhancement Improved how C# reflection is exposed to C++. Huge performance improvements.
  • Unity Enhancement Boxing avoided whenever possible to improve performance.
  • Unity Enhancement Native support for C# double properties.
  • Unity Enhancement Support for binding struct properties.
  • Unity Fixed WPhone Managed strings properly converted to UTF8 when passsed to C++.
  • Unity Fixed Boxed values coming from Unity were incorrectly released sometimes.
  • Unity Fixed Multithreading issue when creating and destroying renderers.
  • Unity Fixed Rarely random crash in Mono arm implementation when using many lambda expressions.
  • Unity Fixed Button command being incorrectly invoked when inside a manipulation.
  • Fixed ListBox selection failing when using boxed values.
  • Fixed NullableConverter.ConvertTo failing when using a null Nullable.
  • Fixed Returning null from Binding.Converter should work even if target property does not support null values.
  • Fixed C++ Reflection macros added to ObservableCollection to allow dynamic casting.
  • Fixed Support for carriage return when displaying text.
  • Fixed TextBox caret shown outside control bounds when using a template without a ScrollContentPresenter .
  • Fixed Incorrect caret position in right/center aligned TextBox.
  • Fixed TextBox with right aligned wrapped text not positioning caret correctly.
  • Fixed HorizontalContentAlignment not working in TextBox.
  • Fixed Slider input crashing.
  • Fixed Fixed return type of Freezable.Clone and related.
  • Fixed Unity Focused element being lost when starting the application.
  • Fixed Style.BasedOn can be set to itself leading to infinite loop during initialization.
  • Fixed HorizontalOffset/HorizontalChange of ScrollChangedEventArgs not delivering correct values.
  • Fixed Text.Stroke rendering incorrectly if only setting Text.StrokeThickness.
  • Fixed ContentTemplate not being applied without setting content.
  • Fixed Mouse over properties not updated on mouse wheel events.
  • Fixed Setting binding in freezable inside template.
  • Fixed KeyBinding incorrectly matching modifiers.
  • Fixed Crash if panel destroyed before children collection.
  • Fixed Enums with different names for the same value not correctly registered.
  • Fixed Commands not setting Handled member to True when processing event.
  • Fixed ListView column headers can't be dragged if pressing over the header content.
  • Fixed Path stretching not working correctly due to bug in bound calculations.
  • Fixed Value converters ignored by DataTrigger.
  • Fixed DataTrigger not being evaluated correctly if condition fulfilled during initialization.
  • Fixed Collapsing/Uncollapsing not updating desired size correctly.
  • Fixed Problem with generics and AOT causing strange crashes.
  • Fixed Crash when animating properties with incorrect type.
  • Fixed Width of elements using Grid.ColumnSpan being applied to each single column.
  • Fixed UserControl not transferring InputBindings and CommandBindings from associated xaml.
  • Fixed Can't set Resources property of UserControl when inside another xaml.
  • Fixed Vertical ProgressBar not rendering the same as WPF.

Version 1.2.5f11

  • Unity Fixed Support for dynamically changing screen resolution and antialiasing in OpenGL.
  • Unity Fixed Rare crash when using extra mouse buttons and hovering over elements.
  • Unity Fixed Keyboard and Mouse incorrectly disabled in mobile platforms (needed for example in Android TV).

Version 1.2.5f10

  • Fixed ScrollContentPresenter accessing destroyed scroll info during measure.
  • Unity Fixed GLCore renderer was not working properly in Windows.

Version 1.2.5f9

  • Unity NoesisGUI is now compatible with Unity 5.3.
  • Fixed ContentPresenter content template not correctly disconnected when being invalidated.
  • Unity Fixed C# PropertyChanged event binder being accessed after destruction.
  • Fixed Crash when using PPA with very big meshes. PPA disabled in those cases now.

Version 1.2.5f8

  • Feature Implementation of DataTrigger and MultiDataTrigger. New sample at GitHub.
  • Unity Improved compatibility with Unity 5.2.
  • Unity Feature Added support for rendering inside uGUI using a RawImage component.
  • Enhancement FrameworkElement value providers re-factorized as static classes to reduce memory usage.
  • Enhancement Group opacity shader optimized.
  • Enhancement Improved how system resources stop notifying dynamic resources.
  • Enhancement Improved exception safety in Kernel initialization. Init and Shutdown are more robust now.
  • Enhancement Some important keys (like comma, period, minus, plus...) where missing from Key enum.
  • Unity Enhancement Documentation folders no longer stored inside Assets/.
  • Unity Enhancement Log and Dump directories were not being created. We needed them to be pre-created.
  • Unity Enhancement Compatibility with OpenGLCore Unity Graphics API.
  • Unity Enhancement Multithreaded Rendering working in Android.
  • Unity Enhancement Errors going from C# to C++ are sent to the Unity log.
  • Unity Enhancement Improved rendering performance (Android) when no group opacities being used.
  • Unity Enhancement Improved the way noesis native errors are handled. We no longer show alien dialogs.
  • Unity Enhancement UnityRenderHook dynamic libraries no longer needed in standalone.
  • Unity Enhancement Various VisualTreeHelper methods used uint instead of int.
  • Unity Enhancement Support for extending ResourceDictionary. Required to implement DesignTimeResourceDictionary.
  • Fixed Crash and leaks returning strings between C++ <-> C#.
  • Fixed Logical tree is now built when object gets initialized, so FindResource can find resources correctly.
  • Fixed TextBlock does not wrap when using a scale LayoutTransform.
  • Fixed Unhandled exception when using a CombinedGeometry without setting both geometries.
  • Fixed Nothing drawn when using GeometryGroup or CombinedGeometry in Path.Data property.
  • Fixed Remove class/property name size limitation in PropertyPath parsing.
  • Fixed Style storyboards shouldn't reference named elements.
  • Fixed TwoWay binding failing with Nullable<double> source.
  • Fixed Crash with animated ProgressBar style.
  • Fixed Access Violation closing submenu.
  • Fixed Exception after Offscreen Error.
  • Fixed Sometimes the DisplayMemberPath property does not seem to work in ComboBoxes.
  • Fixed Scroll not working when VerticalScrollBarVisibility was disabled.
  • Fixed Strange crash in Linux related to mouse input handling.
  • Fixed Accessing deleted template elements when a ContentControl was destroyed.
  • Fixed Accessing deleted PropertyMetadata object when destroying its PropertyChangedCallbackBind.
  • Fixed Crash accessing TimelineEventArgs.Target on Completed event handler.
  • Fixed Visual glitch / Strange render issues when geometry transform updated.
  • Unity Fixed Errors when initializing a XAML renderer were causing unhandled exception and closing Unity.
  • Unity Fixed UserControl.Triggers for FrameworkElement.Loaded affect only on the second frame.
  • Unity Fixed Crash at shutdown when binding to ObservableCollection<bool>.
  • Unity Fixed TextureSource was not returning the correct values for PixelWidth, PixelHeight and Dpis.
  • Unity Fixed Can't use a Converter in Binding if target property is nullable.
  • Unity Fixed Custom nullable properties (CLR and DP) in C#.
  • Unity Fixed Runtime crash of Unity editor when style storyboard references template name.
  • Unity Fixed Can't patch file when building for Windows Store Universal.
  • Unity Fixed Unity crash using runtime view model with bindings.
  • Unity Fixed Linux plugins not properly configured for Universal Builds.
  • Unity Fixed Notify Property Change for indexers not working.

Version 1.2.4

  • Unity NoesisGUI is now 100% compatible with Unity 5.1.
  • Unity Feature Added support for the new unified OpenGL rendering backend in Unity 5.1.
  • Unity Feature Support for indexed properties in data-binding. Int and String key types supported.
  • Feature Implemented DisplayMemberPath property in ItemsControl class.
  • Feature Implemented SelectedValue and SelectedValuePath properties in Selector class.
  • Feature Implemented support for HierarchicalDataTemplates.
  • Feature Implemented UniformGrid.
  • Feature Added support for TextBox properties: IsSelectionActive, SelectionStart, SelectionLength and SelectedText.
  • Enhancement Resource lookup (FindResource with StaticResource and DynamicResource) reviewed to match WPF behavior.
  • Enhancement Avoid iterating the logical tree multiple times when doing a resource lookup.
  • Enhancement Visual.HitTest() now expects position in visual coordinates, as in WPF.
  • Enhancement InputBindings are now DependencyObjects and Command is a DependencyProperty so bindings can be set.
  • Enhancement Improved XAML parser checks setting duplicate properties.
  • Enhancement Added DataContextChanged and Initialized events to FrameworkElement.
  • Enhancement Added PasswordBox login sample.
  • Enhancement BuildTool errors redirected to stderr. Exit code is now the number of errors found.
  • Enhancement Improved OSX editor stability.
  • Enhancement Improved the rendering performance of radial gradients.
  • Enhancement ManipulationInertiaStartingEventArgs changed to be more WPF compliant.
  • Enhancement Doc Touch Tutorial updated. Sample moved to github repository.
  • Enhancement Doc Added a new entry explaining UniformGrid to Panels Tutorial.
  • Enhancement Doc Data Binding Tutorial commenting about HierarchicalDataTemplate, DisplayMemberPath and Indexers.
  • Enhancement Doc Updated the documentation for Windows Store in the Unity Tutorial. Steps simplified a bit.
  • Unity Enhancement DataTemplateSelector properly exposed to C#. It was only available in C++ before.
  • Unity Enhancement Non-routed events for UIElement and FrameworkElement exposed.
  • Unity Enhancement Support for overriding ToString, Equals and GetHashCode in custom classes.
  • Unity Enhancement Added ShowSlices property to NineSlice UserControl to render a visual hint for the slices.
  • Unity Enhancement Removed obsolete Resources.LoadAssetAtPath().
  • Unity Enhancement Added support for C# properties of type TimeSpan, Duration and KeyTime.
  • Fixed Incorrect rendering of asymmetric radial gradients in iOS.
  • Fixed TextBlock inlines not working inside a template.
  • Fixed TextBlock alignment within data template not working properly.
  • Fixed StringFormat parser not working properly in rare cases.
  • Fixed Text is now updated on editable ComboBox when writing in the TextBox.
  • Fixed Crash destroying elements after showing ToolTips.
  • Fixed Line shape was not calculating correctly the stretch transform applied to the LineGeometry.
  • Fixed Circular references could be created when binding content to UserControl as DataContext.
  • Fixed ScrollViewer scrollbars not hiding or showing when content changed its size.
  • Fixed LayoutTransform failing with negative scales.
  • Fixed Bindings to elements in template being lost when changing template.
  • Fixed Changed the behavior of Loaded event to be WPF compliant. Now it is raised after element is ready to be rendered.
  • Fixed Controls remain focused when they or their parent are hidden.
  • Fixed Strange crash in focus management when doing ALT + TAB in Linux.
  • Fixed Template visual tree was not reevaluating inherited properties and dynamic resources after connecting it to the Control.
  • Fixed ToolTips were not being hidden after moving mouse outside their owner.
  • Fixed SelectedIndex and SelectedItem were not updated after modifying ItemsSource.
  • Fixed ItemCollection was not connecting inner collections to the UI tree.
  • Fixed ComboBoxes opened inside a ScrollViewer were also scrolling the ScrollViewer.
  • Unity Fixed Access violation using List or ObservableCollection<T> with basic types as ItemsSource of a Selector control.
  • Unity Fixed ListBox failing to select items bound to a List or ObservableCollection<T> for non-reference types.
  • Unity Fixed Removing item from data bound ListBox via command binding causing crashes.
  • Unity Fixed Dependency GetValue not unboxing BaseComponent sometimes.
  • Unity Fixed Crash when closing an application that lost the focus at initialization time in OSX.
  • Unity Fixed In some cases items passed to a managed list were not unboxed, producing an ArgumentException in Unity.
  • Unity Fixed TryFindResource now returns null when resource is not found as in WPF.

Version 1.2.3

  • Feature New platform supported: x86_64 in Linux.
  • Enhancement Remove border and background from the styles of base control classes.
  • Enhancement Improve error message setting a Binding in a CLR property.
  • Enhancement Updated iOS and Android sections in integration tutorial. New integration sample for Android.
  • Enhancement RTTI is now enabled by default in GCC (as in XCode) to avoid linking issues in client projects.
  • Enhancement RemoveUnusedProxies optimized, it should no longer appear in the profiler hot spots.
  • Enhancement Unity Exceptions raised in C# like event handlers no longer generating native exceptions in standalone.
  • Fixed Selector properties SelectedIndex, SelectedItem and SelectedValue should be TwoWay bound by default
  • Fixed Arrow keys moving focus out of TextBox when text was empty.
  • Fixed Popup with StaysOpen=false was not updating IsOpen property when closing it by clicking outside the popup.
  • Fixed Enter actions of control template Triggers were not fired on initialization.
  • Fixed Default ProgressBar template changed to allow modifying the height.
  • Fixed GCC 4.8 compilation issues.
  • Fixed Binding failed to assign compatible values when source property was BaseComponent.
  • Fixed Simple Run inside a TextBlock was not working.
  • Fixed TextBox caret not always visible when interacting with text.
  • Fixed Caret position wrong in Wrap mode when a word doesn't fit in a line.
  • Fixed Big Paths (>64K indices) crashing.
  • Fixed Issue with degenerated cubic Bezier curves.
  • Fixed GLSL 140 path was being incorrectly taken in GL3+ instead of GL3.1+.
  • Fixed Extension GL_EXT_multisampled_render_to_texture not working correctly in OpenGL ES 3.
  • Unity Fixed Type already registered problem when base type can end up registering the same type.

Version 1.2.2

  • Unity 5 We have fixed all the known problems and now NoesisGUI is fully compatible with Unity5. All supported platforms.
  • Unity Enhancement Dependency to tbb.dll eliminated
  • Fixed Strange issue in OpenGL drivers (OSX) causing random flickering.
  • Fixed Proper detection of max multisample values. Was not correct in several mobile devices.
  • Fixed Serialization of Dependency Properties was crashing in a few scenarios (C++ SDK).
  • Fixed Crash setting a non-dictionary root in ResourceDictionary.Source.
  • Fixed BuildTool crashing with a few incorrect markups.
  • Fixed PlaneProjection.CenterOfRotation{X,Y,Z} not working properly.
  • Fixed Crash setting a Style object in the Template property using a Binding.
  • Fixed BaseComponentConverter now CanConvertTo string as expected.
  • Fixed Pure Virtual Function Call when a binding was partially resolved and last Path property type was not a BaseComponent.
  • Fixed Render glitches in win_x86_64 due to non-finite math problems (NaN, Infinites)
  • Unity Fixed Windows Phone platform crashing at startup although it was working properly if generating a store package.
  • Unity Fixed Weird interaction with Unity was activating a slow path in the OpenGL driver (OSX performance problem).
  • Unity Fixed Crash passing structs from Mono to C++ in the OSX version of Mono.
  • Unity Fixed Proper error shown if Metal API is active in iOS

Version 1.2.1

  • Unity Feature Unity 5 compatibility.
  • Unity Feature Added NoesisGUIPanel.LoadXaml(xaml) to create noesisGUI panels by code.
  • Unity Enhancement IDisposable no longer implemented in BaseComponent.
  • Enhancement TextBox.AcceptsTab implemented.
  • Enhancement Keyboard events are now properly raised/canceled when user sets Handled=true.
  • Enhancement Fixed parameters of KeyEventArgs and TextCompositionEventArgs to be WPF compliant.
  • Fixed DataContext being incorrectly reset when Visual parent removed.
  • Fixed Initialization error in several Android devices.
  • Fixed Crash restoring focus on a TextBox/PasswordBox.
  • Fixed Crash when using StaticResources to set properties of a DataTemplateSelector in XAML.
  • Unity Fixed Problem with DependencyProperties in controls that are instanced from code.
  • Unity Fixed MouseEventArgs.GetPosition(UIElement relativeTo) crashes when null element was passed.
  • Unity Fixed Memory leaks when creating StringMarshal objects.
  • Unity Fixed NullReferenceException destroying disabled NoesisGUIPanel.
  • Unity Fixed Error when Stopping with a NoesisGUIPanel disabled.
  • Unity Fixed Registered missing native types in Unity.
  • Unity Fixed DependencyProperty and PropertyMetadata types not exposed correctly in Unity.
  • Unity Fixed Render to texture not working properly on Android.
  • Fixed Memory leak when DataContext is set to itself (usually in UserControl.OnPostInit() { DataContext = this}).

Version 1.2.0

  • Feature New platforms supported:
    • DirectX11
    • Windows Store and Windows Phone 8.1
    • OpenGL3+
    • OpenGL ES 3
    • iOS arm64
  • Unity Feature Absolute URIs are now supported.
  • Unity Feature MVVM project shared to be compatible with uFrame.
  • Enhancement New batching algorithm. Draw Calls reduced significantly.
  • Enhancement Optimized the way ramps are uploaded to the GPU.
  • Enhancement Dashing generation improved.
  • Enhancement Improved filling and stroking generation. Less triangles generated. Better quality of strokes.
  • Enhancement Reduced the number of redundant state changes. Improved the synchronization with client state.
  • Enhancement Serialization file format increased to version 5. Size is 10% smaller in general.
  • Enhancement Dynamic libraries are smaller now in comparison to v1.1.
  • Enhancement Static library (iOS) is now prelinked and stripped.
  • Enhancement Simplified resource architecture. XAMLs can be everywhere right now.
  • Enhancement New BuildTool. Core resources (like default shaders and styles) are now hidden inside binaries.
  • Enhancement Disabled mipmaps in preprocessed textures.
  • Enhancement Implemented texture compression in GL.
  • Enhancement XamlPlayer is more flexible now. Files can be dropped from any location.
  • Enhancement Support for passing .xaml to be displayed in command line in XamlPlayer.
  • Enhancement Support for Visual Studio 2013 added.
  • Enhancement Improvements to documentation:
  • Enhancement Optimization of theme styles. Opacity usage reduced. Noesis Style is faster at this version.
  • Enhancement Added support for setting a fallback VisualState in Control.GoToState()
  • Enhancement Added support for changing Theme after initialization.
  • Enhancement Support for manually specifying which surfaces must be cleared (only stencil by default).
  • Enhancement Unity Render textures are cleared to transparent.
  • Enhancement Added BooleanToVisibilityConverter.
  • Enhancement Added Rendering event to IRenderer. Also exposed to Unity through NoesisGUIPanel.
  • Enhancement Added support for GL_EXT_debug_marker. Easier to analyze frames now in XCode.
  • Enhancement Unity ControlGallery demo redesigned to be much more touch friendly.
  • C++ API changes:
    • Dependencies properties of type NsString are now set and get using const char*.
    • NoesisGUI.h, a header with all the API (under Noesis namespace). To be used as Precompiled Header.
    • XCode library built with RTTI enabled.
    • We have reduced the exposed API. All integration functionality is under Noesis::GUI.
    • ObservableCollection implemented in C++ (for symmetry with C#).
  • C# API changes:
    • Basic types like Point, Size, Transform2, Matrix3 are now structs to reduce the stress of the GC.
    • Properties instead of Get/Set methods.
    • Animation correctly exposes From, To and By properties.
    • KeyFrame correctly exposes Value property.
    • KeyFrameCollection exposed.
    • Support for native casting (as, is operators). As<T> deprecated.
    • Support for boxing. Our API now exposes System.Object instead of Noesis.BaseComponent.
    • Support for the following interfaces: ICommand, IValueConverter, IList, IDictionary, INotifyPropertyChanged, and INotifyCollectionChanged.
    • Support for ObservableCollection<T>.
    • Generics are now supported.
    • DependencyObject GetValue and SetValue API changed to match WPF, now object is used.
    • NewValue and OldValue to DependencyPropertyChangedEventArgs.
    • Many event arguments modified to expose members as C# properties.
    • Noesis.Extended attribute deprecated.
    • Removing a delegate from an empty event no longer throws as expected in C#.
  • Fixed Unnecessary Offscreen passes being generated on each frame.
  • Fixed Bug in state transitions when both VisualTransition and VisualState defined a Storyboard.
  • Fixed ListView multiple selection was not working.
  • Fixed RadioButton was not working with an indeterminate (null value) RadioButton in the group.
  • Fixed MergedDictionaries were incorrectly traversed forward when looking for a resource.
  • Fixed TouchEnter and TouchLeave events not properly generated
© 2017 Noesis Technologies