Page 4 of 5

Re: NoesisGUI 1.3 BETA3

Posted: 04 Jan 2017, 15:26
by jsantos
That line slipped trough : D not yet...but soon.

Re: NoesisGUI 1.3 BETA3

Posted: 06 Jan 2017, 05:59
by nokola
Beta 4 fixes sound awesome! Great job! (also Unity customer here btw)

Re: NoesisGUI 1.3 BETA4

Posted: 21 Jan 2017, 14:04
by Ziriax
Beta4 is ready for downloading! Thanks everyone for the great feedback. We are very proud of our community : )
So many improvements, kudos!

Re: NoesisGUI 1.3 BETA2

Posted: 06 Feb 2017, 10:54
by KeldorKatarn
Source attribute deprecated in UserControls and Code-Behind classes. Corresponding XAML must now be loaded from constructor using LoadComponent(this, uri). This matches the WPF behavior.
class MyUserControl: public Noesis::UserControl
{
public:
    MyUserControl()
    {
        InitializeComponent();
    }

private:
    void InitializeComponent()
    {
        Noesis::GUI::LoadComponent(this, "Controls/MyUserControl.xaml");

        // Do FindNames and hook to events here
    }
};

Sorry but I do not quite understand this example code. InitializeComponent() is already defined in FrameworkElement isn't it? How can I simply privately override it? Wouldn't it be better to adjust the FrameworkElement.InitializeComponent() method so it calls a virtual function that we can override in our code behind files? Or am I missunderstanding something here. This re-definition of InitializeComponent() just looks wrong.

Also just for clarification, what exactly does Noesis::Gui::LoadXaml() do compared to Noesis::GUI::LoadComponent()?
I'm assuming that the first will load a XAML text file from any path on the disk and compile it into a usable FrameworkElement, and the latter loads a precompiled binary XAML that was already part of the assets folder?
Or am I wrong?

Re: NoesisGUI 1.3 BETA2

Posted: 07 Feb 2017, 19:16
by jsantos
Sorry but I do not quite understand this example code. InitializeComponent() is already defined in FrameworkElement isn't it? How can I simply privately override it? Wouldn't it be better to adjust the FrameworkElement.InitializeComponent() method so it calls a virtual function that we can override in our code behind files? Or am I missunderstanding something here. This re-definition of InitializeComponent() just looks wrong.
InitializeComponent is the function used by Visual Studio to initialize the automatically generated code-behind code. In Noesis we don't have automatic code-behind yet (it is in the roadmap) but we have followed the same name convention. You can find more information about InitializeComponent here.
Also just for clarification, what exactly does Noesis::Gui::LoadXaml() do compared to Noesis::GUI::LoadComponent()?
LoadComponent is a similar version to LoadXaml, but instead of creating the instance indicated in the x:class you pass it the instance created as a parameter. This function is mainly used to connect user controls with their xaml part. More information about this method in the MSDN.

Re: NoesisGUI 1.3 BETA4

Posted: 07 Feb 2017, 23:46
by KeldorKatarn
A quick followup qurstion to the XAML loading. If I load a XAML and get the FrameworkElement object in return. Will it be possible in the future to assign that to the NoesisGUIPanel component in Unity as a root? Right now the root can only be changed by forcing a complete reload specifying the XAML file.

I mean the current workaround is to have a small shell XAML with a ContentControl that you simply assign the different views to. Is there any reason the root cannot be easily assigned to right now?

Re: NoesisGUI 1.3 BETA4

Posted: 08 Feb 2017, 01:34
by jsantos
A quick followup qurstion to the XAML loading. If I load a XAML and get the FrameworkElement object in return. Will it be possible in the future to assign that to the NoesisGUIPanel component in Unity as a root? Right now the root can only be changed by forcing a complete reload specifying the XAML file.
Yes, we could add something like that in v1.3 although I don't know if it is going to be that useful because in v1.3 we are tightly integrated with the Unity assets architecture. This means that you no longer can LoadXaml using a path. You will need a MonoBehaviour holding a reference to a XAML asset. Or you will need to have the asset inside a /Resources/ folder.

But yes, we plan to release the Unity version very very soon. Let's wait for that and discuss it again.

Thanks!

Re: NoesisGUI 1.3 BETA4

Posted: 20 Feb 2017, 23:06
by jsantos
For people waiting for the Unity package, we have created a new thread about it.

Re: NoesisGUI 1.3 RC1

Posted: 23 Feb 2017, 04:52
by jsantos
First Release Candidate!
  • New platform supported.
  • Improved the batching algorithm with optimal number of draw calls in many scenarios.
  • Optimized stencil usage trying to avoid it whenever possible.
  • Resource providers exposed to customize how XAMLs, textures and fonts are loaded.
  • Support for multiple initializations in Noesis.GUI.Init().
  • Support for hot reloading of assemblies.
  • Renamed DependencyProperty() parameter names to match WPF.
  • Support for readonly keyword in static DependencyProperties.
  • FontStretch, FontStyle and FontWeight added.
  • RenderOptions.BitmapScalingMode is now available.
  • Texture class exposed with methods to wrap native texture pointers (ID3D11Texture* and GLuint).
  • StreamGeometry.ToString implemented as in WPF.
  • Support for destroying IView and IRenderer independently to avoid having to wait for the render thread.
  • Added support for Paste and SelectAll commands in PasswordBox.
  • Support for showing ToolTip on disabled elements.
  • Stencil artifacts when batching primitives.
  • String property callbacks were not correctly converting between UTF8 and Unicode.
  • TextBox inside ListBox was losing focus when space key was pressed.

Re: NoesisGUI 1.3 RC1

Posted: 23 Feb 2017, 07:01
by ai_enabled
Great job! Works really well, including assemblies reloading feature.
I'm going to update my MonoGame Wrapper integration project on Github for 1.3 release with adding all the missing features (thought for DX11 only yet).